| Copyright | (c) The University of Glasgow 2002 |
|---|---|
| License | see libraries/base/LICENSE |
| Maintainer | ghc-devs@haskell.org |
| Stability | internal |
| Portability | non-portable (GHC Extensions) |
| Safe Haskell | None |
| Language | Haskell2010 |
GHC Extensions: this is the Approved Way to get at GHC-specific extensions.
Note: no other base module should import this module.
A value of type Ptr a represents a pointer to an object, or an array of objects, which may be marshalled to or from Haskell values of type a.
The type a will often be an instance of class Storable which provides the marshalling operations. However this is not essential, and you can provide your own operations to access the pointer. For example you might write small foreign functions to get or set the fields of a C struct.
| Generic1 (URec (Ptr ()) :: k -> Type) Source | |||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| Eq1 (UAddr :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
| Ord1 (UAddr :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
Defined in Data.Functor.Classes | |||||
| Show1 (UAddr :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
| Data a => Data (Ptr a) Source | Since: base-4.8.0.0 |
||||
Defined in GHC.Internal.Data.Data Methodsgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Ptr a -> c (Ptr a) Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Ptr a) Source toConstr :: Ptr a -> Constr Source dataTypeOf :: Ptr a -> DataType Source dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Ptr a)) Source dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Ptr a)) Source gmapT :: (forall b. Data b => b -> b) -> Ptr a -> Ptr a Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Ptr a -> r Source gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Ptr a -> r Source gmapQ :: (forall d. Data d => d -> u) -> Ptr a -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> Ptr a -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> Ptr a -> m (Ptr a) Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Ptr a -> m (Ptr a) Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Ptr a -> m (Ptr a) Source | |||||
| Foldable (UAddr :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Foldable Methodsfold :: Monoid m => UAddr m -> m Source foldMap :: Monoid m => (a -> m) -> UAddr a -> m Source foldMap' :: Monoid m => (a -> m) -> UAddr a -> m Source foldr :: (a -> b -> b) -> b -> UAddr a -> b Source foldr' :: (a -> b -> b) -> b -> UAddr a -> b Source foldl :: (b -> a -> b) -> b -> UAddr a -> b Source foldl' :: (b -> a -> b) -> b -> UAddr a -> b Source foldr1 :: (a -> a -> a) -> UAddr a -> a Source foldl1 :: (a -> a -> a) -> UAddr a -> a Source toList :: UAddr a -> [a] Source null :: UAddr a -> Bool Source length :: UAddr a -> Int Source elem :: Eq a => a -> UAddr a -> Bool Source maximum :: Ord a => UAddr a -> a Source minimum :: Ord a => UAddr a -> a Source | |||||
| Traversable (UAddr :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Traversable | |||||
| Storable (Ptr a) Source | Since: base-2.1 |
||||
Defined in GHC.Internal.Foreign.Storable | |||||
| Show (Ptr a) Source | Since: base-2.1 |
||||
| Eq (Ptr a) Source | Since: base-2.1 |
||||
| Ord (Ptr a) Source | Since: base-2.1 |
||||
Defined in GHC.Internal.Ptr | |||||
| Functor (URec (Ptr ()) :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
| Show (UAddr p) Source | Since: base-4.21.0.0 |
||||
| Generic (URec (Ptr ()) p) Source | |||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| Eq (URec (Ptr ()) p) Source | Since: base-4.9.0.0 |
||||
| Ord (URec (Ptr ()) p) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Generics Methodscompare :: URec (Ptr ()) p -> URec (Ptr ()) p -> Ordering Source (<) :: URec (Ptr ()) p -> URec (Ptr ()) p -> Bool Source (<=) :: URec (Ptr ()) p -> URec (Ptr ()) p -> Bool Source (>) :: URec (Ptr ()) p -> URec (Ptr ()) p -> Bool Source (>=) :: URec (Ptr ()) p -> URec (Ptr ()) p -> Bool Source max :: URec (Ptr ()) p -> URec (Ptr ()) p -> URec (Ptr ()) p Source min :: URec (Ptr ()) p -> URec (Ptr ()) p -> URec (Ptr ()) p Source | |||||
| data URec (Ptr ()) (p :: k) Source |
Used for marking occurrences of Since: base-4.9.0.0 |
||||
| type Rep1 (URec (Ptr ()) :: k -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Generics | |||||
| type Rep (URec (Ptr ()) p) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Generics | |||||
A value of type FunPtr a is a pointer to a function callable from foreign code. The type a will normally be a foreign type, a function type with zero or more arguments where
Char, Int, Double, Float, Bool, Int8, Int16, Int32, Int64, Word8, Word16, Word32, Word64, Ptr a, FunPtr a, StablePtr a or a renaming of any of these using newtype.IO t where t is a marshallable foreign type or ().A value of type FunPtr a may be a pointer to a foreign function, either returned by another foreign function or imported with a a static address import like
foreign import ccall "stdlib.h &free" p_free :: FunPtr (Ptr a -> IO ())
or a pointer to a Haskell function created using a wrapper stub declared to produce a FunPtr of the correct type. For example:
type Compare = Int -> Int -> Bool foreign import ccall "wrapper" mkCompare :: Compare -> IO (FunPtr Compare)
Calls to wrapper stubs like mkCompare allocate storage, which should be released with freeHaskellFunPtr when no longer required.
To convert FunPtr values to corresponding Haskell functions, one can define a dynamic stub for the specific foreign type, e.g.
type IntFunction = CInt -> IO () foreign import ccall "dynamic" mkFun :: FunPtr IntFunction -> IntFunction
| Storable (FunPtr a) Source | Since: base-2.1 |
Defined in GHC.Internal.Foreign.Storable MethodssizeOf :: FunPtr a -> Int Source alignment :: FunPtr a -> Int Source peekElemOff :: Ptr (FunPtr a) -> Int -> IO (FunPtr a) Source pokeElemOff :: Ptr (FunPtr a) -> Int -> FunPtr a -> IO () Source peekByteOff :: Ptr b -> Int -> IO (FunPtr a) Source pokeByteOff :: Ptr b -> Int -> FunPtr a -> IO () Source | |
| Show (FunPtr a) Source | Since: base-2.1 |
| Eq (FunPtr a) Source | |
| Ord (FunPtr a) Source | |
Defined in GHC.Internal.Ptr | |
isTrue# :: Int# -> Bool Source
Alias for tagToEnum#. Returns True if its parameter is 1# and False if it is 0#.
pattern KindRepApp :: KindRep -> KindRep -> KindRep Source
pattern KindRepFun :: KindRep -> KindRep -> KindRep Source
pattern KindRepTYPE :: !RuntimeRep -> KindRep Source
pattern KindRepTyConApp :: TyCon -> [KindRep] -> KindRep Source
pattern KindRepTypeLitD :: TypeLitSort -> [Char] -> KindRep Source
pattern KindRepTypeLitS :: TypeLitSort -> Addr# -> KindRep Source
pattern KindRepVar :: !KindBndr -> KindRep Source
type family MultMul (a :: Multiplicity) (b :: Multiplicity) :: Multiplicity where ... Source
SPEC is used by GHC in the SpecConstr pass in order to inform the compiler when to be particularly aggressive. In particular, it tells GHC to specialize regardless of size or the number of specializations. However, not all loops fall into this category.
Libraries can specify this by using SPEC data type to inform which loops should be aggressively specialized. For example, instead of
loop x where loop arg = ...
write
loop SPEC x where loop !_ arg = ...
There is no semantic difference between SPEC and SPEC2, we just need a type with two constructors lest it is optimised away before SpecConstr.
This type is reexported from GHC.Exts since GHC 9.0 and base-4.15. For compatibility with earlier releases import it from GHC.Types in ghc-prim package.
Since: ghc-prim-0.3.1.0
pattern TrNameD :: [Char] -> TrName Source
Dynamic
pattern TrNameS :: Addr# -> TrName Source
Static
pattern TypeLitChar :: TypeLitSort Source
pattern TypeLitNat :: TypeLitSort Source
pattern TypeLitSymbol :: TypeLitSort Source
Deprecated: Void# is now an alias for the unboxed tuple (# #).
data CONSTRAINT (a :: RuntimeRep) Source
data TYPE (a :: RuntimeRep) Source
type family Any :: k where ... Source
The type constructor Any :: forall k. k is a type to which you can unsafely coerce any type, and back.
For unsafeCoerce this means for all lifted types t that unsafeCoerce (unsafeCoerce x :: Any) :: t is equivalent to x and safe.
The same is true for *all* types when using
unsafeCoerce# :: forall (r1 :: RuntimeRep) (r2 :: RuntimeRep)
(a :: TYPE r1) (b :: TYPE r2).
a -> b
but only if you instantiate r1 and r2 to the same runtime representation. For example using (unsafeCoerce# :: forall (a :: TYPE IntRep) (b :: TYPE IntRep). a -> b) x is fine, but (unsafeCoerce# :: forall (a :: TYPE IntRep) (b :: TYPE FloatRep). a -> b) will likely cause seg-faults or worse. For this resason, users should always prefer unsafeCoerce over unsafeCoerce# when possible.
Here are some more examples:
bad_a1 :: Any (TYPE 'IntRep) bad_a1 = unsafeCoerce# True
bad_a2 :: Any (TYPE ('BoxedRep 'UnliftedRep))
bad_a2 = unsafeCoerce# True
Here bad_a1 is bad because we started with True :: (Bool :: Type), represented by a boxed heap pointer, and coerced it to a1 :: Any (TYPE 'IntRep), whose representation is a non-pointer integer.
That's why we had to use unsafeCoerce#; it is really unsafe because it can change representations.
Similarly bad_a2 is bad because although both True and bad_a2 are represented by a heap pointer,
True is lifted but bad_a2@ is not; bugs here may be rather subtle.
If you must use unsafeCoerce# to cast to Any, type annotations are recommended to make sure that Any has the correct kind. As casting between different runtimereps is unsound. For example to cast a ByteArray# to Any you might use:
unsafeCoerce# b :: (Any :: TYPE ('BoxedRep 'Unlifted))
| Bits Bool Source |
Interpret Since: base-4.7.0.0 |
||||
Defined in GHC.Internal.Bits Methods(.&.) :: Bool -> Bool -> Bool Source (.|.) :: Bool -> Bool -> Bool Source xor :: Bool -> Bool -> Bool Source complement :: Bool -> Bool Source shift :: Bool -> Int -> Bool Source rotate :: Bool -> Int -> Bool Source setBit :: Bool -> Int -> Bool Source clearBit :: Bool -> Int -> Bool Source complementBit :: Bool -> Int -> Bool Source testBit :: Bool -> Int -> Bool Source bitSizeMaybe :: Bool -> Maybe Int Source isSigned :: Bool -> Bool Source shiftL :: Bool -> Int -> Bool Source unsafeShiftL :: Bool -> Int -> Bool Source shiftR :: Bool -> Int -> Bool Source unsafeShiftR :: Bool -> Int -> Bool Source rotateL :: Bool -> Int -> Bool Source | |||||
| FiniteBits Bool Source | Since: base-4.7.0.0 |
||||
Defined in GHC.Internal.Bits MethodsfiniteBitSize :: Bool -> Int Source countLeadingZeros :: Bool -> Int Source countTrailingZeros :: Bool -> Int Source | |||||
| Data Bool Source | Since: base-4.0.0.0 |
||||
Defined in GHC.Internal.Data.Data Methodsgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Bool -> c Bool Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Bool Source toConstr :: Bool -> Constr Source dataTypeOf :: Bool -> DataType Source dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Bool) Source dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Bool) Source gmapT :: (forall b. Data b => b -> b) -> Bool -> Bool Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Bool -> r Source gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Bool -> r Source gmapQ :: (forall d. Data d => d -> u) -> Bool -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> Bool -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> Bool -> m Bool Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Bool -> m Bool Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Bool -> m Bool Source | |||||
| Bounded Bool Source | Since: base-2.1 |
||||
| Enum Bool Source | Since: base-2.1 |
||||
| Storable Bool Source | Since: base-2.1 |
||||
Defined in GHC.Internal.Foreign.Storable | |||||
| Generic Bool Source | |||||
Defined in GHC.Internal.Generics | |||||
| SingKind Bool | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| Ix Bool Source | Since: base-2.1 |
||||
Defined in GHC.Internal.Ix | |||||
| Read Bool Source | Since: base-2.1 |
||||
| Show Bool Source | Since: base-2.1 |
||||
| Eq Bool Source | |||||
| Ord Bool Source | |||||
| SingI 'False | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Generics | |||||
| SingI 'True | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Generics | |||||
| Lift Bool Source | |||||
| type DemoteRep Bool Source | |||||
Defined in GHC.Internal.Generics | |||||
| type Rep Bool Source | Since: base-4.6.0.0 |
||||
| data Sing (a :: Bool) Source | |||||
The character type Char represents Unicode codespace and its elements are code points as in definitions D9 and D10 of the Unicode Standard.
Character literals in Haskell are single-quoted: 'Q', 'Я' or 'Ω'. To represent a single quote itself use '\'', and to represent a backslash use '\\'. The full grammar can be found in the section 2.6 of the Haskell 2010 Language Report.
To specify a character by its code point one can use decimal, hexadecimal or octal notation: '\65', '\x41' and '\o101' are all alternative forms of 'A'. The largest code point is '\x10ffff'.
There is a special escape syntax for ASCII control characters:
| Escape | Alternatives | Meaning |
|---|---|---|
'\NUL' |
'\0' |
null character |
'\SOH' |
'\1' |
start of heading |
'\STX' |
'\2' |
start of text |
'\ETX' |
'\3' |
end of text |
'\EOT' |
'\4' |
end of transmission |
'\ENQ' |
'\5' |
enquiry |
'\ACK' |
'\6' |
acknowledge |
'\BEL' |
'\7', '\a'
|
bell (alert) |
'\BS' |
'\8', '\b'
|
backspace |
'\HT' |
'\9', '\t'
|
horizontal tab |
'\LF' |
'\10', '\n'
|
line feed (new line) |
'\VT' |
'\11', '\v'
|
vertical tab |
'\FF' |
'\12', '\f'
|
form feed |
'\CR' |
'\13', '\r'
|
carriage return |
'\SO' |
'\14' |
shift out |
'\SI' |
'\15' |
shift in |
'\DLE' |
'\16' |
data link escape |
'\DC1' |
'\17' |
device control 1 |
'\DC2' |
'\18' |
device control 2 |
'\DC3' |
'\19' |
device control 3 |
'\DC4' |
'\20' |
device control 4 |
'\NAK' |
'\21' |
negative acknowledge |
'\SYN' |
'\22' |
synchronous idle |
'\ETB' |
'\23' |
end of transmission block |
'\CAN' |
'\24' |
cancel |
'\EM' |
'\25' |
end of medium |
'\SUB' |
'\26' |
substitute |
'\ESC' |
'\27' |
escape |
'\FS' |
'\28' |
file separator |
'\GS' |
'\29' |
group separator |
'\RS' |
'\30' |
record separator |
'\US' |
'\31' |
unit separator |
'\SP' |
'\32', ' '
|
space |
'\DEL' |
'\127' |
delete |
Data.Char provides utilities to work with Char.
| IsChar Char Source | Since: base-2.1 |
||||
| PrintfArg Char Source | Since: base-2.1 |
||||
Defined in Text.Printf | |||||
| Data Char Source | Since: base-4.0.0.0 |
||||
Defined in GHC.Internal.Data.Data Methodsgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Char -> c Char Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Char Source toConstr :: Char -> Constr Source dataTypeOf :: Char -> DataType Source dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Char) Source dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Char) Source gmapT :: (forall b. Data b => b -> b) -> Char -> Char Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Char -> r Source gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Char -> r Source gmapQ :: (forall d. Data d => d -> u) -> Char -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> Char -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> Char -> m Char Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Char -> m Char Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Char -> m Char Source | |||||
| Bounded Char Source | Since: base-2.1 |
||||
| Enum Char Source | Since: base-2.1 |
||||
| Storable Char Source | Since: base-2.1 |
||||
Defined in GHC.Internal.Foreign.Storable | |||||
| Ix Char Source | Since: base-2.1 |
||||
Defined in GHC.Internal.Ix | |||||
| Read Char Source | Since: base-2.1 |
||||
| Show Char Source | Since: base-2.1 |
||||
| Eq Char Source | |||||
| Ord Char Source | |||||
| TestCoercion SChar Source | Since: base-4.18.0.0 |
||||
Defined in GHC.Internal.TypeLits | |||||
| TestEquality SChar Source | Since: base-4.18.0.0 |
||||
Defined in GHC.Internal.TypeLits | |||||
| Lift Char Source | |||||
| Generic1 (URec Char :: k -> Type) Source | |||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| Eq1 (UChar :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
| Ord1 (UChar :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
Defined in Data.Functor.Classes | |||||
| Show1 (UChar :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
| Foldable (UChar :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Foldable Methodsfold :: Monoid m => UChar m -> m Source foldMap :: Monoid m => (a -> m) -> UChar a -> m Source foldMap' :: Monoid m => (a -> m) -> UChar a -> m Source foldr :: (a -> b -> b) -> b -> UChar a -> b Source foldr' :: (a -> b -> b) -> b -> UChar a -> b Source foldl :: (b -> a -> b) -> b -> UChar a -> b Source foldl' :: (b -> a -> b) -> b -> UChar a -> b Source foldr1 :: (a -> a -> a) -> UChar a -> a Source foldl1 :: (a -> a -> a) -> UChar a -> a Source toList :: UChar a -> [a] Source null :: UChar a -> Bool Source length :: UChar a -> Int Source elem :: Eq a => a -> UChar a -> Bool Source maximum :: Ord a => UChar a -> a Source minimum :: Ord a => UChar a -> a Source | |||||
| Traversable (UChar :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Traversable | |||||
| Functor (URec Char :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
| Generic (URec Char p) Source | |||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| Show (URec Char p) Source | Since: base-4.9.0.0 |
||||
| Eq (URec Char p) Source | Since: base-4.9.0.0 |
||||
| Ord (URec Char p) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Generics Methodscompare :: URec Char p -> URec Char p -> Ordering Source (<) :: URec Char p -> URec Char p -> Bool Source (<=) :: URec Char p -> URec Char p -> Bool Source (>) :: URec Char p -> URec Char p -> Bool Source (>=) :: URec Char p -> URec Char p -> Bool Source | |||||
| data URec Char (p :: k) Source |
Used for marking occurrences of Since: base-4.9.0.0 |
||||
| type Compare (a :: Char) (b :: Char) Source | |||||
Defined in GHC.Internal.Data.Type.Ord | |||||
| type Rep1 (URec Char :: k -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Generics | |||||
| type Rep (URec Char p) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Generics | |||||
class a ~R# b => Coercible (a :: k) (b :: k) Source
Coercible is a two-parameter class that has instances for types a and b if the compiler can infer that they have the same representation. This class does not have regular instances; instead they are created on-the-fly during type-checking. Trying to manually declare an instance of Coercible is an error.
Nevertheless one can pretend that the following three kinds of instances exist. First, as a trivial base-case:
instance Coercible a a
Furthermore, for every type constructor there is an instance that allows to coerce under the type constructor. For example, let D be a prototypical type constructor (data or newtype) with three type arguments, which have roles nominal, representational resp. phantom. Then there is an instance of the form
instance Coercible b b' => Coercible (D a b c) (D a b' c')
Note that the nominal type arguments are equal, the representational type arguments can differ, but need to have a Coercible instance themself, and the phantom type arguments can be changed arbitrarily.
The third kind of instance exists for every newtype NT = MkNT T and comes in two variants, namely
instance Coercible a T => Coercible a NT
instance Coercible T b => Coercible NT b
This instance is only usable if the constructor MkNT is in scope.
If, as a library author of a type constructor like Set a, you want to prevent a user of your module to write coerce :: Set T -> Set NT, you need to set the role of Set's type parameter to nominal, by writing
type role Set nominal
For more details about this feature, please refer to Safe Coercions by Joachim Breitner, Richard A. Eisenberg, Simon Peyton Jones and Stephanie Weirich.
Since: ghc-prim-0.4.0
type Constraint = CONSTRAINT LiftedRep Source
The kind of lifted constraints
Data type Dict provides a simple way to wrap up a (lifted) constraint as a type
| a => MkDictBox |
Double-precision floating point numbers. It is desirable that this type be at least equal in range and precision to the IEEE double-precision type.
| PrintfArg Double Source | Since: base-2.1 |
||||
Defined in Text.Printf | |||||
| Data Double Source | Since: base-4.0.0.0 |
||||
Defined in GHC.Internal.Data.Data Methodsgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Double -> c Double Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Double Source toConstr :: Double -> Constr Source dataTypeOf :: Double -> DataType Source dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Double) Source dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Double) Source gmapT :: (forall b. Data b => b -> b) -> Double -> Double Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Double -> r Source gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Double -> r Source gmapQ :: (forall d. Data d => d -> u) -> Double -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> Double -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> Double -> m Double Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Double -> m Double Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Double -> m Double Source | |||||
| Floating Double Source | Since: base-2.1 |
||||
Defined in GHC.Internal.Float Methodsexp :: Double -> Double Source log :: Double -> Double Source sqrt :: Double -> Double Source (**) :: Double -> Double -> Double Source logBase :: Double -> Double -> Double Source sin :: Double -> Double Source cos :: Double -> Double Source tan :: Double -> Double Source asin :: Double -> Double Source acos :: Double -> Double Source atan :: Double -> Double Source sinh :: Double -> Double Source cosh :: Double -> Double Source tanh :: Double -> Double Source asinh :: Double -> Double Source acosh :: Double -> Double Source atanh :: Double -> Double Source log1p :: Double -> Double Source expm1 :: Double -> Double Source | |||||
| RealFloat Double Source | Since: base-2.1 |
||||
Defined in GHC.Internal.Float MethodsfloatRadix :: Double -> Integer Source floatDigits :: Double -> Int Source floatRange :: Double -> (Int, Int) Source decodeFloat :: Double -> (Integer, Int) Source encodeFloat :: Integer -> Int -> Double Source exponent :: Double -> Int Source significand :: Double -> Double Source scaleFloat :: Int -> Double -> Double Source isNaN :: Double -> Bool Source isInfinite :: Double -> Bool Source isDenormalized :: Double -> Bool Source isNegativeZero :: Double -> Bool Source | |||||
| Storable Double Source | Since: base-2.1 |
||||
Defined in GHC.Internal.Foreign.Storable MethodssizeOf :: Double -> Int Source alignment :: Double -> Int Source peekElemOff :: Ptr Double -> Int -> IO Double Source pokeElemOff :: Ptr Double -> Int -> Double -> IO () Source peekByteOff :: Ptr b -> Int -> IO Double Source pokeByteOff :: Ptr b -> Int -> Double -> IO () Source | |||||
| Read Double Source | Since: base-2.1 |
||||
| Eq Double Source |
Note that due to the presence of >>> 0/0 == (0/0 :: Double) False Also note that >>> 0 == (-0 :: Double) True >>> recip 0 == recip (-0 :: Double) False |
||||
| Ord Double Source |
IEEE 754 IEEE 754-2008, section 5.11 requires that if at least one of arguments of IEEE 754-2008, section 5.10 defines Thus, users must be extremely cautious when using Moving further, the behaviour of IEEE 754-2008 compliant |
||||
Defined in GHC.Classes | |||||
| Lift Double Source | |||||
| Generic1 (URec Double :: k -> Type) Source | |||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| Eq1 (UDouble :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
| Ord1 (UDouble :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
Defined in Data.Functor.Classes | |||||
| Show1 (UDouble :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
| Foldable (UDouble :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Foldable Methodsfold :: Monoid m => UDouble m -> m Source foldMap :: Monoid m => (a -> m) -> UDouble a -> m Source foldMap' :: Monoid m => (a -> m) -> UDouble a -> m Source foldr :: (a -> b -> b) -> b -> UDouble a -> b Source foldr' :: (a -> b -> b) -> b -> UDouble a -> b Source foldl :: (b -> a -> b) -> b -> UDouble a -> b Source foldl' :: (b -> a -> b) -> b -> UDouble a -> b Source foldr1 :: (a -> a -> a) -> UDouble a -> a Source foldl1 :: (a -> a -> a) -> UDouble a -> a Source toList :: UDouble a -> [a] Source null :: UDouble a -> Bool Source length :: UDouble a -> Int Source elem :: Eq a => a -> UDouble a -> Bool Source maximum :: Ord a => UDouble a -> a Source minimum :: Ord a => UDouble a -> a Source | |||||
| Traversable (UDouble :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Traversable | |||||
| Functor (URec Double :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
| Generic (URec Double p) Source | |||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| Show (URec Double p) Source | Since: base-4.9.0.0 |
||||
| Eq (URec Double p) Source | Since: base-4.9.0.0 |
||||
| Ord (URec Double p) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Generics Methodscompare :: URec Double p -> URec Double p -> Ordering Source (<) :: URec Double p -> URec Double p -> Bool Source (<=) :: URec Double p -> URec Double p -> Bool Source (>) :: URec Double p -> URec Double p -> Bool Source (>=) :: URec Double p -> URec Double p -> Bool Source max :: URec Double p -> URec Double p -> URec Double p Source min :: URec Double p -> URec Double p -> URec Double p Source | |||||
| data URec Double (p :: k) Source |
Used for marking occurrences of Since: base-4.9.0.0 |
||||
| type Rep1 (URec Double :: k -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Generics | |||||
| type Rep (URec Double p) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Generics | |||||
data DoubleBox (a :: TYPE 'DoubleRep) Source
| MkDoubleBox a |
Single-precision floating point numbers. It is desirable that this type be at least equal in range and precision to the IEEE single-precision type.
| PrintfArg Float Source | Since: base-2.1 |
||||
Defined in Text.Printf | |||||
| Data Float Source | Since: base-4.0.0.0 |
||||
Defined in GHC.Internal.Data.Data Methodsgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Float -> c Float Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Float Source toConstr :: Float -> Constr Source dataTypeOf :: Float -> DataType Source dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Float) Source dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Float) Source gmapT :: (forall b. Data b => b -> b) -> Float -> Float Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Float -> r Source gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Float -> r Source gmapQ :: (forall d. Data d => d -> u) -> Float -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> Float -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> Float -> m Float Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Float -> m Float Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Float -> m Float Source | |||||
| Floating Float Source | Since: base-2.1 |
||||
Defined in GHC.Internal.Float | |||||
| RealFloat Float Source | Since: base-2.1 |
||||
Defined in GHC.Internal.Float MethodsfloatRadix :: Float -> Integer Source floatDigits :: Float -> Int Source floatRange :: Float -> (Int, Int) Source decodeFloat :: Float -> (Integer, Int) Source encodeFloat :: Integer -> Int -> Float Source exponent :: Float -> Int Source significand :: Float -> Float Source scaleFloat :: Int -> Float -> Float Source isInfinite :: Float -> Bool Source isDenormalized :: Float -> Bool Source isNegativeZero :: Float -> Bool Source | |||||
| Storable Float Source | Since: base-2.1 |
||||
Defined in GHC.Internal.Foreign.Storable | |||||
| Read Float Source | Since: base-2.1 |
||||
| Eq Float Source |
Note that due to the presence of >>> 0/0 == (0/0 :: Float) False Also note that >>> 0 == (-0 :: Float) True >>> recip 0 == recip (-0 :: Float) False |
||||
| Ord Float Source | See |
||||
Defined in GHC.Classes | |||||
| Lift Float Source | |||||
| Generic1 (URec Float :: k -> Type) Source | |||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| Eq1 (UFloat :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
| Ord1 (UFloat :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
Defined in Data.Functor.Classes | |||||
| Show1 (UFloat :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
| Foldable (UFloat :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Foldable Methodsfold :: Monoid m => UFloat m -> m Source foldMap :: Monoid m => (a -> m) -> UFloat a -> m Source foldMap' :: Monoid m => (a -> m) -> UFloat a -> m Source foldr :: (a -> b -> b) -> b -> UFloat a -> b Source foldr' :: (a -> b -> b) -> b -> UFloat a -> b Source foldl :: (b -> a -> b) -> b -> UFloat a -> b Source foldl' :: (b -> a -> b) -> b -> UFloat a -> b Source foldr1 :: (a -> a -> a) -> UFloat a -> a Source foldl1 :: (a -> a -> a) -> UFloat a -> a Source toList :: UFloat a -> [a] Source null :: UFloat a -> Bool Source length :: UFloat a -> Int Source elem :: Eq a => a -> UFloat a -> Bool Source maximum :: Ord a => UFloat a -> a Source minimum :: Ord a => UFloat a -> a Source | |||||
| Traversable (UFloat :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Traversable | |||||
| Functor (URec Float :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
| Generic (URec Float p) Source | |||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| Show (URec Float p) Source | |||||
| Eq (URec Float p) Source | |||||
| Ord (URec Float p) Source | |||||
Defined in GHC.Internal.Generics Methodscompare :: URec Float p -> URec Float p -> Ordering Source (<) :: URec Float p -> URec Float p -> Bool Source (<=) :: URec Float p -> URec Float p -> Bool Source (>) :: URec Float p -> URec Float p -> Bool Source (>=) :: URec Float p -> URec Float p -> Bool Source | |||||
| data URec Float (p :: k) Source |
Used for marking occurrences of Since: base-4.9.0.0 |
||||
| type Rep1 (URec Float :: k -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Generics | |||||
| type Rep (URec Float p) Source | |||||
Defined in GHC.Internal.Generics | |||||
data FloatBox (a :: TYPE 'FloatRep) Source
| MkFloatBox a |
A fixed-precision integer type with at least the range [-2^29 .. 2^29-1]. The exact range for a given implementation can be determined by using minBound and maxBound from the Bounded class.
| PrintfArg Int Source | Since: base-2.1 |
||||
Defined in Text.Printf | |||||
| Bits Int Source | Since: base-2.1 |
||||
Defined in GHC.Internal.Bits Methods(.&.) :: Int -> Int -> Int Source (.|.) :: Int -> Int -> Int Source xor :: Int -> Int -> Int Source complement :: Int -> Int Source shift :: Int -> Int -> Int Source rotate :: Int -> Int -> Int Source setBit :: Int -> Int -> Int Source clearBit :: Int -> Int -> Int Source complementBit :: Int -> Int -> Int Source testBit :: Int -> Int -> Bool Source bitSizeMaybe :: Int -> Maybe Int Source isSigned :: Int -> Bool Source shiftL :: Int -> Int -> Int Source unsafeShiftL :: Int -> Int -> Int Source shiftR :: Int -> Int -> Int Source unsafeShiftR :: Int -> Int -> Int Source rotateL :: Int -> Int -> Int Source | |||||
| FiniteBits Int Source | Since: base-4.6.0.0 |
||||
Defined in GHC.Internal.Bits MethodsfiniteBitSize :: Int -> Int Source countLeadingZeros :: Int -> Int Source countTrailingZeros :: Int -> Int Source | |||||
| Data Int Source | Since: base-4.0.0.0 |
||||
Defined in GHC.Internal.Data.Data Methodsgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Int -> c Int Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Int Source toConstr :: Int -> Constr Source dataTypeOf :: Int -> DataType Source dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Int) Source dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Int) Source gmapT :: (forall b. Data b => b -> b) -> Int -> Int Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Int -> r Source gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Int -> r Source gmapQ :: (forall d. Data d => d -> u) -> Int -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> Int -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> Int -> m Int Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Int -> m Int Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Int -> m Int Source | |||||
| Bounded Int Source | Since: base-2.1 |
||||
| Enum Int Source | Since: base-2.1 |
||||
Defined in GHC.Internal.Enum | |||||
| Storable Int Source | Since: base-2.1 |
||||
Defined in GHC.Internal.Foreign.Storable | |||||
| Ix Int Source | Since: base-2.1 |
||||
| Num Int Source | Since: base-2.1 |
||||
| Read Int Source | Since: base-2.1 |
||||
| Integral Int Source | Since: base-2.0.1 |
||||
| Real Int Source | Since: base-2.0.1 |
||||
Defined in GHC.Internal.Real MethodstoRational :: Int -> Rational Source | |||||
| Show Int Source | Since: base-2.1 |
||||
| Eq Int Source | |||||
| Ord Int Source | |||||
| Lift Int Source | |||||
| Generic1 (URec Int :: k -> Type) Source | |||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| Eq1 (UInt :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
| Ord1 (UInt :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
Defined in Data.Functor.Classes | |||||
| Show1 (UInt :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
| Foldable (UInt :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Foldable Methodsfold :: Monoid m => UInt m -> m Source foldMap :: Monoid m => (a -> m) -> UInt a -> m Source foldMap' :: Monoid m => (a -> m) -> UInt a -> m Source foldr :: (a -> b -> b) -> b -> UInt a -> b Source foldr' :: (a -> b -> b) -> b -> UInt a -> b Source foldl :: (b -> a -> b) -> b -> UInt a -> b Source foldl' :: (b -> a -> b) -> b -> UInt a -> b Source foldr1 :: (a -> a -> a) -> UInt a -> a Source foldl1 :: (a -> a -> a) -> UInt a -> a Source toList :: UInt a -> [a] Source length :: UInt a -> Int Source elem :: Eq a => a -> UInt a -> Bool Source maximum :: Ord a => UInt a -> a Source minimum :: Ord a => UInt a -> a Source | |||||
| Traversable (UInt :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
| Functor (URec Int :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
| Generic (URec Int p) Source | |||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| Show (URec Int p) Source | Since: base-4.9.0.0 |
||||
| Eq (URec Int p) Source | Since: base-4.9.0.0 |
||||
| Ord (URec Int p) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Generics Methodscompare :: URec Int p -> URec Int p -> Ordering Source (<) :: URec Int p -> URec Int p -> Bool Source (<=) :: URec Int p -> URec Int p -> Bool Source (>) :: URec Int p -> URec Int p -> Bool Source (>=) :: URec Int p -> URec Int p -> Bool Source | |||||
| data URec Int (p :: k) Source |
Used for marking occurrences of Since: base-4.9.0.0 |
||||
| type Rep1 (URec Int :: k -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Generics | |||||
| type Rep (URec Int p) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Generics | |||||
data IntBox (a :: TYPE 'IntRep) Source
| MkIntBox a |
Whether a boxed type is lifted or unlifted.
| Bounded Levity Source | Since: base-4.16.0.0 |
| Enum Levity Source | Since: base-4.16.0.0 |
Defined in GHC.Internal.Enum Methodssucc :: Levity -> Levity Source pred :: Levity -> Levity Source toEnum :: Int -> Levity Source fromEnum :: Levity -> Int Source enumFrom :: Levity -> [Levity] Source enumFromThen :: Levity -> Levity -> [Levity] Source enumFromTo :: Levity -> Levity -> [Levity] Source enumFromThenTo :: Levity -> Levity -> Levity -> [Levity] Source | |
| Show Levity Source | Since: base-4.15.0.0 |
type LiftedRep = 'BoxedRep 'Lifted Source
The runtime representation of lifted types.
The builtin linked list type.
In Haskell, lists are one of the most important data types as they are often used analogous to loops in imperative programming languages. These lists are singly linked, which makes them unsuited for operations that require \(\mathcal{O}(1)\) access. Instead, they are intended to be traversed.
You can use List a or [a] in type signatures:
length :: [a] -> Int
or
length :: List a -> Int
They are fully equivalent, and List a will be normalised to [a].
Lists are constructed recursively using the right-associative constructor operator (or cons) (:) :: a -> [a] -> [a], which prepends an element to a list, and the empty list [].
(1 : 2 : 3 : []) == (1 : (2 : (3 : []))) == [1, 2, 3]
Lists can also be constructed using list literals of the form [x_1, x_2, ..., x_n] which are syntactic sugar and, unless -XOverloadedLists is enabled, are translated into uses of (:) and []
String literals, like "I 💜 hs", are translated into Lists of characters, ['I', ' ', '💜', ' ', 'h', 's'].
Internally and in memory, all the above are represented like this, with arrows being pointers to locations in memory.
â•───┬───┬──╮ â•───┬───┬──╮ â•───┬───┬──╮ â•────╮
│(:)│ │ ─┼──>│(:)│ │ ─┼──>│(:)│ │ ─┼──>│ [] │
╰───┴─┼─┴──╯ ╰───┴─┼─┴──╯ ╰───┴─┼─┴──╯ ╰────╯
v v v
1 2 3>>> ['H', 'a', 's', 'k', 'e', 'l', 'l'] "Haskell"
>>> 1 : [4, 1, 5, 9] [1,4,1,5,9]
>>> [] : [] : [] [[],[]]
Since: ghc-prim-0.10.0
| Eq1 [] Source | Since: base-4.9.0.0 |
||||
Defined in Data.Functor.Classes | |||||
| Ord1 [] Source | Since: base-4.9.0.0 |
||||
Defined in Data.Functor.Classes MethodsliftCompare :: (a -> b -> Ordering) -> [a] -> [b] -> Ordering Source | |||||
| Read1 [] Source | Since: base-4.9.0.0 |
||||
Defined in Data.Functor.Classes | |||||
| Show1 [] Source | Since: base-4.9.0.0 |
||||
Defined in Data.Functor.Classes | |||||
| Alternative [] Source |
Combines lists by concatenation, starting from the empty list. Since: base-2.1 |
||||
| Applicative [] Source | Since: base-2.1 |
||||
| Functor [] Source | Since: base-2.1 |
||||
Defined in GHC.Internal.Base | |||||
| Monad [] Source | Since: base-2.1 |
||||
| MonadPlus [] Source |
Combines lists by concatenation, starting from the empty list. Since: base-2.1 |
||||
Defined in GHC.Internal.Base | |||||
| MonadFail [] Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Control.Monad.Fail | |||||
| MonadFix [] Source | Since: base-2.1 |
||||
Defined in GHC.Internal.Control.Monad.Fix | |||||
| MonadZip [] Source | Since: ghc-internal-4.3.1.0 |
||||
| Foldable [] Source | Since: base-2.1 |
||||
Defined in GHC.Internal.Data.Foldable Methodsfold :: Monoid m => [m] -> m Source foldMap :: Monoid m => (a -> m) -> [a] -> m Source foldMap' :: Monoid m => (a -> m) -> [a] -> m Source foldr :: (a -> b -> b) -> b -> [a] -> b Source foldr' :: (a -> b -> b) -> b -> [a] -> b Source foldl :: (b -> a -> b) -> b -> [a] -> b Source foldl' :: (b -> a -> b) -> b -> [a] -> b Source foldr1 :: (a -> a -> a) -> [a] -> a Source foldl1 :: (a -> a -> a) -> [a] -> a Source elem :: Eq a => a -> [a] -> Bool Source maximum :: Ord a => [a] -> a Source minimum :: Ord a => [a] -> a Source | |||||
| Traversable [] Source | Since: base-2.1 |
||||
Defined in GHC.Internal.Data.Traversable | |||||
| Generic1 [] Source | |||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| Lift a => Lift ([a] :: Type) Source | |||||
| IsChar c => PrintfArg [c] Source | Since: base-2.1 |
||||
Defined in Text.Printf | |||||
| IsChar c => PrintfType [c] Source | Since: base-2.1 |
||||
Defined in Text.Printf | |||||
| Monoid [a] Source | Since: base-2.1 |
||||
| Semigroup [a] Source | Since: base-4.9.0.0 |
||||
| Data a => Data [a] Source |
For historical reasons, the constructor name used for Since: base-4.0.0.0 |
||||
Defined in GHC.Internal.Data.Data Methodsgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> [a] -> c [a] Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c [a] Source toConstr :: [a] -> Constr Source dataTypeOf :: [a] -> DataType Source dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c [a]) Source dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c [a]) Source gmapT :: (forall b. Data b => b -> b) -> [a] -> [a] Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> [a] -> r Source gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> [a] -> r Source gmapQ :: (forall d. Data d => d -> u) -> [a] -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> [a] -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> [a] -> m [a] Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> [a] -> m [a] Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> [a] -> m [a] Source | |||||
| a ~ Char => IsString [a] Source |
Since: base-2.1 |
||||
Defined in GHC.Internal.Data.String MethodsfromString :: String -> [a] Source | |||||
| Generic [a] Source | |||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| IsList [a] Source | Since: base-4.7.0.0 |
||||
| Read a => Read [a] Source | Since: base-2.1 |
||||
| Show a => Show [a] Source | Since: base-2.1 |
||||
| Eq a => Eq [a] Source | |||||
| Ord a => Ord [a] Source | |||||
| type Rep1 [] Source | Since: base-4.6.0.0 |
||||
Defined in GHC.Internal.Generics type Rep1 [] = D1 ('MetaData "List" "GHC.Types" "ghc-prim" 'False) (C1 ('MetaCons "[]" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons ":" ('InfixI 'RightAssociative 5) 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1 :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 []))) | |||||
| type Rep [a] Source | Since: base-4.6.0.0 |
||||
Defined in GHC.Internal.Generics type Rep [a] = D1 ('MetaData "List" "GHC.Types" "ghc-prim" 'False) (C1 ('MetaCons "[]" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons ":" ('InfixI 'RightAssociative 5) 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [a]))) | |||||
| type Item [a] Source | |||||
Defined in GHC.Internal.IsList type Item [a] = a | |||||
data Multiplicity Source
data RuntimeRep Source
GHC maintains a property that the kind of all inhabited types (as distinct from type constructors or type-level data) tells us the runtime representation of values of that type. This datatype encodes the choice of runtime value. Note that TYPE is parameterised by RuntimeRep; this is precisely what we mean by the fact that a type's kind encodes the runtime representation.
For boxed values (that is, values that are represented by a pointer), a further distinction is made, between lifted types (that contain ⊥), and unlifted ones (that don't).
| VecRep VecCount VecElem | a SIMD vector type |
| TupleRep [RuntimeRep] | An unboxed tuple of the given reps |
| SumRep [RuntimeRep] | An unboxed sum of the given reps |
| BoxedRep Levity | boxed; represented by a pointer |
| IntRep | signed, word-sized value |
| Int8Rep | signed, 8-bit value |
| Int16Rep | signed, 16-bit value |
| Int32Rep | signed, 32-bit value |
| Int64Rep | signed, 64-bit value |
| WordRep | unsigned, word-sized value |
| Word8Rep | unsigned, 8-bit value |
| Word16Rep | unsigned, 16-bit value |
| Word32Rep | unsigned, 32-bit value |
| Word64Rep | unsigned, 64-bit value |
| AddrRep | A pointer, but not to a Haskell value |
| FloatRep | a 32-bit floating point number |
| DoubleRep | a 64-bit floating point number |
| Show RuntimeRep Source | Since: base-4.11.0.0 |
Defined in GHC.Internal.Show MethodsshowsPrec :: Int -> RuntimeRep -> ShowS Source show :: RuntimeRep -> String Source showList :: [RuntimeRep] -> ShowS Source | |
| Lift (# #) Source | Since: template-haskell-2.16.0.0 |
| Lift a => Lift ((# a #) :: TYPE ('TupleRep '[LiftedRep])) Source | Since: template-haskell-2.16.0.0 |
| (Lift a, Lift b) => Lift ((# a | b #) :: TYPE ('SumRep '[LiftedRep, LiftedRep])) Source | Since: template-haskell-2.16.0.0 |
| (Lift a, Lift b) => Lift ((# a, b #) :: TYPE ('TupleRep '[LiftedRep, LiftedRep])) Source | Since: template-haskell-2.16.0.0 |
| (Lift a, Lift b, Lift c) => Lift ((# a | b | c #) :: TYPE ('SumRep '[LiftedRep, LiftedRep, LiftedRep])) Source | Since: template-haskell-2.16.0.0 |
| (Lift a, Lift b, Lift c) => Lift ((# a, b, c #) :: TYPE ('TupleRep '[LiftedRep, LiftedRep, LiftedRep])) Source | Since: template-haskell-2.16.0.0 |
| (Lift a, Lift b, Lift c, Lift d) => Lift ((# a | b | c | d #) :: TYPE ('SumRep '[LiftedRep, LiftedRep, LiftedRep, LiftedRep])) Source | Since: template-haskell-2.16.0.0 |
| (Lift a, Lift b, Lift c, Lift d) => Lift ((# a, b, c, d #) :: TYPE ('TupleRep '[LiftedRep, LiftedRep, LiftedRep, LiftedRep])) Source | Since: template-haskell-2.16.0.0 |
| (Lift a, Lift b, Lift c, Lift d, Lift e) => Lift ((# a | b | c | d | e #) :: TYPE ('SumRep '[LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep])) Source | Since: template-haskell-2.16.0.0 |
| (Lift a, Lift b, Lift c, Lift d, Lift e) => Lift ((# a, b, c, d, e #) :: TYPE ('TupleRep '[LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep])) Source | Since: template-haskell-2.16.0.0 |
| (Lift a, Lift b, Lift c, Lift d, Lift e, Lift f) => Lift ((# a | b | c | d | e | f #) :: TYPE ('SumRep '[LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep])) Source | Since: template-haskell-2.16.0.0 |
| (Lift a, Lift b, Lift c, Lift d, Lift e, Lift f) => Lift ((# a, b, c, d, e, f #) :: TYPE ('TupleRep '[LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep])) Source | Since: template-haskell-2.16.0.0 |
| (Lift a, Lift b, Lift c, Lift d, Lift e, Lift f, Lift g) => Lift ((# a | b | c | d | e | f | g #) :: TYPE ('SumRep '[LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep])) Source | Since: template-haskell-2.16.0.0 |
| (Lift a, Lift b, Lift c, Lift d, Lift e, Lift f, Lift g) => Lift ((# a, b, c, d, e, f, g #) :: TYPE ('TupleRep '[LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep])) Source | Since: template-haskell-2.16.0.0 |
(Kind) This is the kind of type-level symbols.
| SingKind Symbol | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| TestCoercion SSymbol Source | Since: base-4.18.0.0 |
||||
Defined in GHC.Internal.TypeLits | |||||
| TestEquality SSymbol Source | Since: base-4.18.0.0 |
||||
Defined in GHC.Internal.TypeLits | |||||
| KnownSymbol a => SingI (a :: Symbol) | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Generics Methodssing :: Sing a | |||||
| type DemoteRep Symbol Source | |||||
Defined in GHC.Internal.Generics | |||||
| data Sing (s :: Symbol) Source | |||||
Defined in GHC.Internal.Generics data Sing (s :: Symbol) where
| |||||
| type Compare (a :: Symbol) (b :: Symbol) Source | |||||
Defined in GHC.Internal.Data.Type.Ord | |||||
type UnliftedRep = 'BoxedRep 'Unlifted Source
The runtime representation of unlifted types.
type UnliftedType = TYPE UnliftedRep Source
The kind of boxed, unlifted values, for example Array# or a user-defined unlifted data type, using -XUnliftedDataTypes.
Length of a SIMD vector type
| Bounded VecCount Source | Since: base-4.10.0.0 |
| Enum VecCount Source | Since: base-4.10.0.0 |
Defined in GHC.Internal.Enum Methodssucc :: VecCount -> VecCount Source pred :: VecCount -> VecCount Source toEnum :: Int -> VecCount Source fromEnum :: VecCount -> Int Source enumFrom :: VecCount -> [VecCount] Source enumFromThen :: VecCount -> VecCount -> [VecCount] Source enumFromTo :: VecCount -> VecCount -> [VecCount] Source enumFromThenTo :: VecCount -> VecCount -> VecCount -> [VecCount] Source | |
| Show VecCount Source | Since: base-4.11.0.0 |
Element of a SIMD vector type
| Int8ElemRep | |
| Int16ElemRep | |
| Int32ElemRep | |
| Int64ElemRep | |
| Word8ElemRep | |
| Word16ElemRep | |
| Word32ElemRep | |
| Word64ElemRep | |
| FloatElemRep | |
| DoubleElemRep |
| Bounded VecElem Source | Since: base-4.10.0.0 |
| Enum VecElem Source | Since: base-4.10.0.0 |
Defined in GHC.Internal.Enum Methodssucc :: VecElem -> VecElem Source pred :: VecElem -> VecElem Source toEnum :: Int -> VecElem Source fromEnum :: VecElem -> Int Source enumFrom :: VecElem -> [VecElem] Source enumFromThen :: VecElem -> VecElem -> [VecElem] Source enumFromTo :: VecElem -> VecElem -> [VecElem] Source enumFromThenTo :: VecElem -> VecElem -> VecElem -> [VecElem] Source | |
| Show VecElem Source | Since: base-4.11.0.0 |
A Word is an unsigned integral type, with the same size as Int.
| PrintfArg Word Source | Since: base-2.1 |
||||
Defined in Text.Printf | |||||
| Bits Word Source | Since: base-2.1 |
||||
Defined in GHC.Internal.Bits Methods(.&.) :: Word -> Word -> Word Source (.|.) :: Word -> Word -> Word Source xor :: Word -> Word -> Word Source complement :: Word -> Word Source shift :: Word -> Int -> Word Source rotate :: Word -> Int -> Word Source setBit :: Word -> Int -> Word Source clearBit :: Word -> Int -> Word Source complementBit :: Word -> Int -> Word Source testBit :: Word -> Int -> Bool Source bitSizeMaybe :: Word -> Maybe Int Source isSigned :: Word -> Bool Source shiftL :: Word -> Int -> Word Source unsafeShiftL :: Word -> Int -> Word Source shiftR :: Word -> Int -> Word Source unsafeShiftR :: Word -> Int -> Word Source rotateL :: Word -> Int -> Word Source | |||||
| FiniteBits Word Source | Since: base-4.6.0.0 |
||||
Defined in GHC.Internal.Bits MethodsfiniteBitSize :: Word -> Int Source countLeadingZeros :: Word -> Int Source countTrailingZeros :: Word -> Int Source | |||||
| Data Word Source | Since: base-4.0.0.0 |
||||
Defined in GHC.Internal.Data.Data Methodsgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Word -> c Word Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Word Source toConstr :: Word -> Constr Source dataTypeOf :: Word -> DataType Source dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Word) Source dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Word) Source gmapT :: (forall b. Data b => b -> b) -> Word -> Word Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Word -> r Source gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Word -> r Source gmapQ :: (forall d. Data d => d -> u) -> Word -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> Word -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> Word -> m Word Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Word -> m Word Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Word -> m Word Source | |||||
| Bounded Word Source | Since: base-2.1 |
||||
| Enum Word Source | Since: base-2.1 |
||||
| Storable Word Source | Since: base-2.1 |
||||
Defined in GHC.Internal.Foreign.Storable | |||||
| Ix Word Source | Since: base-4.6.0.0 |
||||
Defined in GHC.Internal.Ix | |||||
| Num Word Source | Since: base-2.1 |
||||
| Read Word Source | Since: base-4.5.0.0 |
||||
| Integral Word Source | Since: base-2.1 |
||||
Defined in GHC.Internal.Real | |||||
| Real Word Source | Since: base-2.1 |
||||
Defined in GHC.Internal.Real MethodstoRational :: Word -> Rational Source | |||||
| Show Word Source | Since: base-2.1 |
||||
| Eq Word Source | |||||
| Ord Word Source | |||||
| Lift Word Source | |||||
| Generic1 (URec Word :: k -> Type) Source | |||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| Eq1 (UWord :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
| Ord1 (UWord :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
Defined in Data.Functor.Classes | |||||
| Show1 (UWord :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
| Foldable (UWord :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Foldable Methodsfold :: Monoid m => UWord m -> m Source foldMap :: Monoid m => (a -> m) -> UWord a -> m Source foldMap' :: Monoid m => (a -> m) -> UWord a -> m Source foldr :: (a -> b -> b) -> b -> UWord a -> b Source foldr' :: (a -> b -> b) -> b -> UWord a -> b Source foldl :: (b -> a -> b) -> b -> UWord a -> b Source foldl' :: (b -> a -> b) -> b -> UWord a -> b Source foldr1 :: (a -> a -> a) -> UWord a -> a Source foldl1 :: (a -> a -> a) -> UWord a -> a Source toList :: UWord a -> [a] Source null :: UWord a -> Bool Source length :: UWord a -> Int Source elem :: Eq a => a -> UWord a -> Bool Source maximum :: Ord a => UWord a -> a Source minimum :: Ord a => UWord a -> a Source | |||||
| Traversable (UWord :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Traversable | |||||
| Functor (URec Word :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
| Generic (URec Word p) Source | |||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| Show (URec Word p) Source | Since: base-4.9.0.0 |
||||
| Eq (URec Word p) Source | Since: base-4.9.0.0 |
||||
| Ord (URec Word p) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Generics Methodscompare :: URec Word p -> URec Word p -> Ordering Source (<) :: URec Word p -> URec Word p -> Bool Source (<=) :: URec Word p -> URec Word p -> Bool Source (>) :: URec Word p -> URec Word p -> Bool Source (>=) :: URec Word p -> URec Word p -> Bool Source | |||||
| data URec Word (p :: k) Source |
Used for marking occurrences of Since: base-4.9.0.0 |
||||
| type Rep1 (URec Word :: k -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Generics | |||||
| type Rep (URec Word p) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Generics | |||||
data WordBox (a :: TYPE 'WordRep) Source
| MkWordBox a |
type ZeroBitRep = 'TupleRep ('[] :: [RuntimeRep]) Source
The runtime representation of a zero-width tuple, represented by no bits at all
type ZeroBitType = TYPE ZeroBitRep Source
The kind of the empty unboxed tuple type (# #)
class a ~# b => (a :: k) ~ (b :: k) infix 4 Source
Lifted, homogeneous equality. By lifted, we mean that it can be bogus (deferred type error). By homogeneous, the two types a and b must have the same kinds.
class a ~# b => (a :: k0) ~~ (b :: k1) infix 4 Source
Lifted, heterogeneous equality. By lifted, we mean that it can be bogus (deferred type error). By heterogeneous, the two types a and b might have different kinds. Because ~~ can appear unexpectedly in error messages to users who do not care about the difference between heterogeneous equality ~~ and homogeneous equality ~, this is printed as ~ unless -fprint-equality-relations is set.
In 0.7.0, the fixity was set to infix 4 to match the fixity of :~~:.
module GHC.Internal.ArrayArray
Primitive bytecode type.
mkApUpd0# :: BCO -> (# a #) Source
Wrap a BCO in a AP_UPD thunk which will be updated with the value of the BCO when evaluated.
newBCO# :: ByteArray# -> ByteArray# -> Array# a -> Int# -> ByteArray# -> State# d -> (# State# d, BCO #) Source
newBCO# instrs lits ptrs arity bitmap creates a new bytecode object. The resulting object encodes a function of the given arity with the instructions encoded in instrs, and a static reference table usage bitmap given by bitmap.
(*#) :: Int# -> Int# -> Int# infixl 7 Source
Low word of signed integer multiply.
(*##) :: Double# -> Double# -> Double# infixl 7 Source
(**##) :: Double# -> Double# -> Double# Source
Exponentiation.
(+#) :: Int# -> Int# -> Int# infixl 6 Source
(+##) :: Double# -> Double# -> Double# infixl 6 Source
(-#) :: Int# -> Int# -> Int# infixl 6 Source
(-##) :: Double# -> Double# -> Double# infixl 6 Source
(/##) :: Double# -> Double# -> Double# infixl 7 Source
(/=#) :: Int# -> Int# -> Int# infix 4 Source
(/=##) :: Double# -> Double# -> Int# infix 4 Source
(<#) :: Int# -> Int# -> Int# infix 4 Source
(<##) :: Double# -> Double# -> Int# infix 4 Source
(<=#) :: Int# -> Int# -> Int# infix 4 Source
(<=##) :: Double# -> Double# -> Int# infix 4 Source
(==#) :: Int# -> Int# -> Int# infix 4 Source
(==##) :: Double# -> Double# -> Int# infix 4 Source
(>#) :: Int# -> Int# -> Int# infix 4 Source
(>##) :: Double# -> Double# -> Int# infix 4 Source
(>=#) :: Int# -> Int# -> Int# infix 4 Source
(>=##) :: Double# -> Double# -> Int# infix 4 Source
acosDouble# :: Double# -> Double# Source
acosFloat# :: Float# -> Float# Source
acoshDouble# :: Double# -> Double# Source
acoshFloat# :: Float# -> Float# Source
addCFinalizerToWeak# :: forall {k :: Levity} (b :: TYPE ('BoxedRep k)). Addr# -> Addr# -> Int# -> Addr# -> Weak# b -> State# RealWorld -> (# State# RealWorld, Int# #) Source
addCFinalizerToWeak# fptr ptr flag eptr w attaches a C function pointer fptr to a weak pointer w as a finalizer. If flag is zero, fptr will be called with one argument, ptr. Otherwise, it will be called with two arguments, eptr and ptr. addCFinalizerToWeak# returns 1 on success, or 0 if w is already dead.
addIntC# :: Int# -> Int# -> (# Int#, Int# #) Source
Add signed integers reporting overflow. First member of result is the sum truncated to an Int#; second member is zero if the true sum fits in an Int#, nonzero if overflow occurred (the sum is either too large or too small to fit in an Int#).
addWordC# :: Word# -> Word# -> (# Word#, Int# #) Source
Add unsigned integers reporting overflow. The first element of the pair is the result. The second element is the carry flag, which is nonzero on overflow. See also plusWord2#.
addr2Int# :: Addr# -> Int# Source
Coerce directly from address to int. Users are discouraged from using this operation as it makes little sense on platforms with tagged pointers.
addrToAny# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)). Addr# -> (# a #) Source
Convert an Addr# to a followable Any type.
and# :: Word# -> Word# -> Word# Source
and64# :: Word64# -> Word64# -> Word64# Source
andI# :: Int# -> Int# -> Int# Source
Bitwise "and".
andWord16# :: Word16# -> Word16# -> Word16# Source
andWord32# :: Word32# -> Word32# -> Word32# Source
andWord8# :: Word8# -> Word8# -> Word8# Source
anyToAddr# :: a -> State# RealWorld -> (# State# RealWorld, Addr# #) Source
Retrieve the address of any Haskell value. This is essentially an unsafeCoerce#, but if implemented as such the core lint pass complains and fails to compile. As a primop, it is opaque to core/stg, and only appears in cmm (where the copy propagation pass will get rid of it). Note that "a" must be a value, not a thunk! It's too late for strictness analysis to enforce this, so you're on your own to guarantee this. Also note that Addr# is not a GC pointer - up to you to guarantee that it does not become a dangling pointer immediately after you get it.
asinDouble# :: Double# -> Double# Source
asinFloat# :: Float# -> Float# Source
asinhDouble# :: Double# -> Double# Source
asinhFloat# :: Float# -> Float# Source
atanDouble# :: Double# -> Double# Source
atanFloat# :: Float# -> Float# Source
atanhDouble# :: Double# -> Double# Source
atanhFloat# :: Float# -> Float# Source
atomicCasAddrAddr# :: Addr# -> Addr# -> Addr# -> State# d -> (# State# d, Addr# #) Source
Compare and swap on a word-sized memory location.
Use as: s -> atomicCasAddrAddr# location expected desired s
This version always returns the old value read. This follows the normal protocol for CAS operations (and matches the underlying instruction on most architectures).
Implies a full memory barrier.
Warning: this can fail with an unchecked exception.
atomicCasWord16Addr# :: Addr# -> Word16# -> Word16# -> State# d -> (# State# d, Word16# #) Source
Compare and swap on a 16 bit-sized and aligned memory location.
Use as: s -> atomicCasWordAddr16# location expected desired s
This version always returns the old value read. This follows the normal protocol for CAS operations (and matches the underlying instruction on most architectures).
Implies a full memory barrier.
Warning: this can fail with an unchecked exception.
atomicCasWord32Addr# :: Addr# -> Word32# -> Word32# -> State# d -> (# State# d, Word32# #) Source
Compare and swap on a 32 bit-sized and aligned memory location.
Use as: s -> atomicCasWordAddr32# location expected desired s
This version always returns the old value read. This follows the normal protocol for CAS operations (and matches the underlying instruction on most architectures).
Implies a full memory barrier.
Warning: this can fail with an unchecked exception.
atomicCasWord64Addr# :: Addr# -> Word64# -> Word64# -> State# d -> (# State# d, Word64# #) Source
Compare and swap on a 64 bit-sized and aligned memory location.
Use as: s -> atomicCasWordAddr64# location expected desired s
This version always returns the old value read. This follows the normal protocol for CAS operations (and matches the underlying instruction on most architectures).
Implies a full memory barrier.
Warning: this can fail with an unchecked exception.
atomicCasWord8Addr# :: Addr# -> Word8# -> Word8# -> State# d -> (# State# d, Word8# #) Source
Compare and swap on a 8 bit-sized and aligned memory location.
Use as: s -> atomicCasWordAddr8# location expected desired s
This version always returns the old value read. This follows the normal protocol for CAS operations (and matches the underlying instruction on most architectures).
Implies a full memory barrier.
Warning: this can fail with an unchecked exception.
atomicCasWordAddr# :: Addr# -> Word# -> Word# -> State# d -> (# State# d, Word# #) Source
Compare and swap on a word-sized and aligned memory location.
Use as: s -> atomicCasWordAddr# location expected desired s
This version always returns the old value read. This follows the normal protocol for CAS operations (and matches the underlying instruction on most architectures).
Implies a full memory barrier.
Warning: this can fail with an unchecked exception.
atomicExchangeAddrAddr# :: Addr# -> Addr# -> State# d -> (# State# d, Addr# #) Source
The atomic exchange operation. Atomically exchanges the value at the first address with the Addr# given as second argument. Implies a read barrier.
Warning: this can fail with an unchecked exception.
atomicExchangeWordAddr# :: Addr# -> Word# -> State# d -> (# State# d, Word# #) Source
The atomic exchange operation. Atomically exchanges the value at the address with the given value. Returns the old value. Implies a read barrier.
Warning: this can fail with an unchecked exception.
atomicModifyMutVar2# :: MutVar# d a -> (a -> c) -> State# d -> (# State# d, a, c #) Source
Modify the contents of a MutVar#, returning the previous contents x :: a and the result of applying the given function to the previous contents f x :: c.
The data type c (not a newtype!) must be a record whose first field is of lifted type a :: Type and is not unpacked. For example, product types c ~ Solo a or c ~ (a, b) work well. If the record type is both monomorphic and strict in its first field, it's recommended to mark the latter {-# NOUNPACK #-} explicitly.
Under the hood atomicModifyMutVar2# atomically replaces a pointer to an old x :: a with a pointer to a selector thunk fst r, where fst is a selector for the first field of the record and r is a function application thunk r = f x.
atomicModifyIORef2Native from atomic-modify-general package makes an effort to reflect restrictions on c faithfully, providing a well-typed high-level wrapper.
atomicModifyMutVar_# :: MutVar# d a -> (a -> a) -> State# d -> (# State# d, a, a #) Source
Modify the contents of a MutVar#, returning the previous contents and the result of applying the given function to the previous contents.
atomicReadIntArray# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int# #) Source
Given an array and an offset in machine words, read an element. The index is assumed to be in bounds. Implies a full memory barrier.
Warning: this can fail with an unchecked exception.
atomicReadWordAddr# :: Addr# -> State# d -> (# State# d, Word# #) Source
Given an address, read a machine word. Implies a full memory barrier.
Warning: this can fail with an unchecked exception.
atomicSwapMutVar# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). MutVar# d a -> a -> State# d -> (# State# d, a #) Source
Atomically exchange the value of a MutVar#.
atomicWriteIntArray# :: MutableByteArray# d -> Int# -> Int# -> State# d -> State# d Source
Given an array and an offset in machine words, write an element. The index is assumed to be in bounds. Implies a full memory barrier.
Warning: this can fail with an unchecked exception.
atomicWriteWordAddr# :: Addr# -> Word# -> State# d -> State# d Source
Given an address, write a machine word. Implies a full memory barrier.
Warning: this can fail with an unchecked exception.
atomically# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)). (State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> (# State# RealWorld, a #) Source
bitReverse# :: Word# -> Word# Source
Reverse the order of the bits in a word.
bitReverse16# :: Word# -> Word# Source
Reverse the order of the bits in a 16-bit word.
bitReverse32# :: Word# -> Word# Source
Reverse the order of the bits in a 32-bit word.
bitReverse64# :: Word64# -> Word64# Source
Reverse the order of the bits in a 64-bit word.
bitReverse8# :: Word# -> Word# Source
Reverse the order of the bits in a 8-bit word.
broadcastDoubleX2# :: Double# -> DoubleX2# Source
Broadcast a scalar to all elements of a vector.
broadcastDoubleX4# :: Double# -> DoubleX4# Source
Broadcast a scalar to all elements of a vector.
broadcastDoubleX8# :: Double# -> DoubleX8# Source
Broadcast a scalar to all elements of a vector.
broadcastFloatX16# :: Float# -> FloatX16# Source
Broadcast a scalar to all elements of a vector.
broadcastFloatX4# :: Float# -> FloatX4# Source
Broadcast a scalar to all elements of a vector.
broadcastFloatX8# :: Float# -> FloatX8# Source
Broadcast a scalar to all elements of a vector.
broadcastInt16X16# :: Int16# -> Int16X16# Source
Broadcast a scalar to all elements of a vector.
broadcastInt16X32# :: Int16# -> Int16X32# Source
Broadcast a scalar to all elements of a vector.
broadcastInt16X8# :: Int16# -> Int16X8# Source
Broadcast a scalar to all elements of a vector.
broadcastInt32X16# :: Int32# -> Int32X16# Source
Broadcast a scalar to all elements of a vector.
broadcastInt32X4# :: Int32# -> Int32X4# Source
Broadcast a scalar to all elements of a vector.
broadcastInt32X8# :: Int32# -> Int32X8# Source
Broadcast a scalar to all elements of a vector.
broadcastInt64X2# :: Int64# -> Int64X2# Source
Broadcast a scalar to all elements of a vector.
broadcastInt64X4# :: Int64# -> Int64X4# Source
Broadcast a scalar to all elements of a vector.
broadcastInt64X8# :: Int64# -> Int64X8# Source
Broadcast a scalar to all elements of a vector.
broadcastInt8X16# :: Int8# -> Int8X16# Source
Broadcast a scalar to all elements of a vector.
broadcastInt8X32# :: Int8# -> Int8X32# Source
Broadcast a scalar to all elements of a vector.
broadcastInt8X64# :: Int8# -> Int8X64# Source
Broadcast a scalar to all elements of a vector.
broadcastWord16X16# :: Word16# -> Word16X16# Source
Broadcast a scalar to all elements of a vector.
broadcastWord16X32# :: Word16# -> Word16X32# Source
Broadcast a scalar to all elements of a vector.
broadcastWord16X8# :: Word16# -> Word16X8# Source
Broadcast a scalar to all elements of a vector.
broadcastWord32X16# :: Word32# -> Word32X16# Source
Broadcast a scalar to all elements of a vector.
broadcastWord32X4# :: Word32# -> Word32X4# Source
Broadcast a scalar to all elements of a vector.
broadcastWord32X8# :: Word32# -> Word32X8# Source
Broadcast a scalar to all elements of a vector.
broadcastWord64X2# :: Word64# -> Word64X2# Source
Broadcast a scalar to all elements of a vector.
broadcastWord64X4# :: Word64# -> Word64X4# Source
Broadcast a scalar to all elements of a vector.
broadcastWord64X8# :: Word64# -> Word64X8# Source
Broadcast a scalar to all elements of a vector.
broadcastWord8X16# :: Word8# -> Word8X16# Source
Broadcast a scalar to all elements of a vector.
broadcastWord8X32# :: Word8# -> Word8X32# Source
Broadcast a scalar to all elements of a vector.
broadcastWord8X64# :: Word8# -> Word8X64# Source
Broadcast a scalar to all elements of a vector.
byteArrayContents# :: ByteArray# -> Addr# Source
Intended for use with pinned arrays; otherwise very unsafe!
byteSwap# :: Word# -> Word# Source
Swap bytes in a word.
byteSwap16# :: Word# -> Word# Source
Swap bytes in the lower 16 bits of a word. The higher bytes are undefined.
byteSwap32# :: Word# -> Word# Source
Swap bytes in the lower 32 bits of a word. The higher bytes are undefined.
byteSwap64# :: Word64# -> Word64# Source
Swap bytes in a 64 bits of a word.
casArray# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). MutableArray# d a -> Int# -> a -> a -> State# d -> (# State# d, Int#, a #) Source
Given an array, an offset, the expected old value, and the new value, perform an atomic compare and swap (i.e. write the new value if the current value and the old value are the same pointer). Returns 0 if the swap succeeds and 1 if it fails. Additionally, returns the element at the offset after the operation completes. This means that on a success the new value is returned, and on a failure the actual old value (not the expected one) is returned. Implies a full memory barrier. The use of a pointer equality on a boxed value makes this function harder to use correctly than casIntArray#. All of the difficulties of using reallyUnsafePtrEquality# correctly apply to casArray# as well.
Warning: this can fail with an unchecked exception.
casInt16Array# :: MutableByteArray# d -> Int# -> Int16# -> Int16# -> State# d -> (# State# d, Int16# #) Source
Given an array, an offset in 16 bit units, the expected old value, and the new value, perform an atomic compare and swap i.e. write the new value if the current value matches the provided old value. Returns the value of the element before the operation. Implies a full memory barrier.
Warning: this can fail with an unchecked exception.
casInt32Array# :: MutableByteArray# d -> Int# -> Int32# -> Int32# -> State# d -> (# State# d, Int32# #) Source
Given an array, an offset in 32 bit units, the expected old value, and the new value, perform an atomic compare and swap i.e. write the new value if the current value matches the provided old value. Returns the value of the element before the operation. Implies a full memory barrier.
Warning: this can fail with an unchecked exception.
casInt64Array# :: MutableByteArray# d -> Int# -> Int64# -> Int64# -> State# d -> (# State# d, Int64# #) Source
Given an array, an offset in 64 bit units, the expected old value, and the new value, perform an atomic compare and swap i.e. write the new value if the current value matches the provided old value. Returns the value of the element before the operation. Implies a full memory barrier.
Warning: this can fail with an unchecked exception.
casInt8Array# :: MutableByteArray# d -> Int# -> Int8# -> Int8# -> State# d -> (# State# d, Int8# #) Source
Given an array, an offset in bytes, the expected old value, and the new value, perform an atomic compare and swap i.e. write the new value if the current value matches the provided old value. Returns the value of the element before the operation. Implies a full memory barrier.
Warning: this can fail with an unchecked exception.
casIntArray# :: MutableByteArray# d -> Int# -> Int# -> Int# -> State# d -> (# State# d, Int# #) Source
Given an array, an offset in machine words, the expected old value, and the new value, perform an atomic compare and swap i.e. write the new value if the current value matches the provided old value. Returns the value of the element before the operation. Implies a full memory barrier.
Warning: this can fail with an unchecked exception.
casMutVar# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). MutVar# d a -> a -> a -> State# d -> (# State# d, Int#, a #) Source
Compare-and-swap: perform a pointer equality test between the first value passed to this function and the value stored inside the MutVar#. If the pointers are equal, replace the stored value with the second value passed to this function, otherwise do nothing. Returns the final value stored inside the MutVar#. The Int# indicates whether a swap took place, with 1# meaning that we didn't swap, and 0# that we did. Implies a full memory barrier. Because the comparison is done on the level of pointers, all of the difficulties of using reallyUnsafePtrEquality# correctly apply to casMutVar# as well.
casSmallArray# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). SmallMutableArray# d a -> Int# -> a -> a -> State# d -> (# State# d, Int#, a #) Source
Unsafe, machine-level atomic compare and swap on an element within an array. See the documentation of casArray#.
Warning: this can fail with an unchecked exception.
castDoubleToWord64# :: Double# -> Word64# Source
Bitcast a Double# into a Word64#
castFloatToWord32# :: Float# -> Word32# Source
Bitcast a Float# into a Word32#
castWord32ToFloat# :: Word32# -> Float# Source
Bitcast a Word32# into a Float#
castWord64ToDouble# :: Word64# -> Double# Source
Bitcast a Word64# into a Double#
catch# :: forall {k :: Levity} a (b :: TYPE ('BoxedRep k)). (State# RealWorld -> (# State# RealWorld, a #)) -> (b -> State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> (# State# RealWorld, a #) Source
catch# k handler s evaluates k s, invoking handler on any exceptions thrown.
Note that the result type here isn't quite as unrestricted as the polymorphic type might suggest; see the section "RuntimeRep polymorphism in continuation-style primops" for details.
catchRetry# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)). (State# RealWorld -> (# State# RealWorld, a #)) -> (State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> (# State# RealWorld, a #) Source
catchSTM# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)) b. (State# RealWorld -> (# State# RealWorld, a #)) -> (b -> State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> (# State# RealWorld, a #) Source
clearCCS# :: (State# d -> (# State# d, a #)) -> State# d -> (# State# d, a #) Source
Run the supplied IO action with an empty CCS. For example, this is used by the interpreter to run an interpreted computation without the call stack showing that it was invoked from GHC.
cloneArray# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)). Array# a -> Int# -> Int# -> Array# a Source
Given a source array, an offset into the source array, and a number of elements to copy, create a new array with the elements from the source array. The provided array must fully contain the specified range, but this is not checked.
Warning: this can fail with an unchecked exception.
cloneMutableArray# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). MutableArray# d a -> Int# -> Int# -> State# d -> (# State# d, MutableArray# d a #) Source
Given a source array, an offset into the source array, and a number of elements to copy, create a new array with the elements from the source array. The provided array must fully contain the specified range, but this is not checked.
Warning: this can fail with an unchecked exception.
cloneSmallArray# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)). SmallArray# a -> Int# -> Int# -> SmallArray# a Source
Given a source array, an offset into the source array, and a number of elements to copy, create a new array with the elements from the source array. The provided array must fully contain the specified range, but this is not checked.
Warning: this can fail with an unchecked exception.
cloneSmallMutableArray# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). SmallMutableArray# d a -> Int# -> Int# -> State# d -> (# State# d, SmallMutableArray# d a #) Source
Given a source array, an offset into the source array, and a number of elements to copy, create a new array with the elements from the source array. The provided array must fully contain the specified range, but this is not checked.
Warning: this can fail with an unchecked exception.
closureSize# :: a -> Int# Source
closureSize# closure returns the size of the given closure in machine words.
Count leading zeros in a word.
clz16# :: Word# -> Word# Source
Count leading zeros in the lower 16 bits of a word.
clz32# :: Word# -> Word# Source
Count leading zeros in the lower 32 bits of a word.
clz64# :: Word64# -> Word# Source
Count leading zeros in a 64-bit word.
clz8# :: Word# -> Word# Source
Count leading zeros in the lower 8 bits of a word.
compactAdd# :: Compact# -> a -> State# RealWorld -> (# State# RealWorld, a #) Source
Recursively add a closure and its transitive closure to a Compact# (a CNF), evaluating any unevaluated components at the same time. Note: compactAdd# is not thread-safe, so only one thread may call compactAdd# with a particular Compact# at any given time. The primop does not enforce any mutual exclusion; the caller is expected to arrange this.
compactAddWithSharing# :: Compact# -> a -> State# RealWorld -> (# State# RealWorld, a #) Source
Like compactAdd#, but retains sharing and cycles during compaction.
compactAllocateBlock# :: Word# -> Addr# -> State# RealWorld -> (# State# RealWorld, Addr# #) Source
Attempt to allocate a compact block with the capacity (in bytes) given by the first argument. The Addr# is a pointer to previous compact block of the CNF or nullAddr# to create a new CNF with a single compact block.
The resulting block is not known to the GC until compactFixupPointers# is called on it, and care must be taken so that the address does not escape or memory will be leaked.
compactContains# :: Compact# -> a -> State# RealWorld -> (# State# RealWorld, Int# #) Source
Returns 1# if the object is contained in the CNF, 0# otherwise.
compactContainsAny# :: a -> State# RealWorld -> (# State# RealWorld, Int# #) Source
Returns 1# if the object is in any CNF at all, 0# otherwise.
compactFixupPointers# :: Addr# -> Addr# -> State# RealWorld -> (# State# RealWorld, Compact#, Addr# #) Source
Given the pointer to the first block of a CNF and the address of the root object in the old address space, fix up the internal pointers inside the CNF to account for a different position in memory than when it was serialized. This method must be called exactly once after importing a serialized CNF. It returns the new CNF and the new adjusted root address.
compactGetFirstBlock# :: Compact# -> State# RealWorld -> (# State# RealWorld, Addr#, Word# #) Source
Returns the address and the utilized size (in bytes) of the first compact block of a CNF.
compactGetNextBlock# :: Compact# -> Addr# -> State# RealWorld -> (# State# RealWorld, Addr#, Word# #) Source
Given a CNF and the address of one its compact blocks, returns the next compact block and its utilized size, or nullAddr# if the argument was the last compact block in the CNF.
compactNew# :: Word# -> State# RealWorld -> (# State# RealWorld, Compact# #) Source
Create a new CNF with a single compact block. The argument is the capacity of the compact block (in bytes, not words). The capacity is rounded up to a multiple of the allocator block size and is capped to one mega block.
compactResize# :: Compact# -> Word# -> State# RealWorld -> State# RealWorld Source
Set the new allocation size of the CNF. This value (in bytes) determines the capacity of each compact block in the CNF. It does not retroactively affect existing compact blocks in the CNF.
compactSize# :: Compact# -> State# RealWorld -> (# State# RealWorld, Word# #) Source
Return the total capacity (in bytes) of all the compact blocks in the CNF.
compareByteArrays# :: ByteArray# -> Int# -> ByteArray# -> Int# -> Int# -> Int# Source
compareByteArrays# src1 src1_ofs src2 src2_ofs n compares n bytes starting at offset src1_ofs in the first ByteArray# src1 to the range of n bytes (i.e. same length) starting at offset src2_ofs of the second ByteArray# src2. Both arrays must fully contain the specified ranges, but this is not checked. Returns an Int# less than, equal to, or greater than zero if the range is found, respectively, to be byte-wise lexicographically less than, to match, or be greater than the second range.
Since: ghc-prim-0.5.2.0
control0# :: PromptTag# a -> (((State# RealWorld -> (# State# RealWorld, b #)) -> State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> (# State# RealWorld, b #) Source
See GHC.Prim.
Warning: this can fail with an unchecked exception.
copyAddrToAddr# :: Addr# -> Addr# -> Int# -> State# RealWorld -> State# RealWorld Source
copyAddrToAddr# src dest len copies len bytes from src to dest. These two memory ranges are allowed to overlap.
Analogous to the standard C function memmove, but with a different argument order.
Warning: this can fail with an unchecked exception.
Since: ghc-prim-0.11.0
copyAddrToAddrNonOverlapping# :: Addr# -> Addr# -> Int# -> State# RealWorld -> State# RealWorld Source
copyAddrToAddrNonOverlapping# src dest len copies len bytes from src to dest. As the name suggests, these two memory ranges must not overlap, although this pre-condition is not checked.
Analogous to the standard C function memcpy, but with a different argument order.
Warning: this can fail with an unchecked exception.
Since: ghc-prim-0.11.0
copyAddrToByteArray# :: Addr# -> MutableByteArray# d -> Int# -> Int# -> State# d -> State# d Source
Copy a memory range starting at the Addr# to the specified range in the MutableByteArray#. The memory region at Addr# and the ByteArray# must fully contain the specified ranges, but this is not checked. The Addr# must not point into the MutableByteArray# (e.g. if the MutableByteArray# were pinned), but this is not checked either.
Warning: this can fail with an unchecked exception.
copyArray# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)) d. Array# a -> Int# -> MutableArray# d a -> Int# -> Int# -> State# d -> State# d Source
Given a source array, an offset into the source array, a destination array, an offset into the destination array, and a number of elements to copy, copy the elements from the source array to the destination array. Both arrays must fully contain the specified ranges, but this is not checked. The two arrays must not be the same array in different states, but this is not checked either.
Warning: this can fail with an unchecked exception.
copyByteArray# :: ByteArray# -> Int# -> MutableByteArray# d -> Int# -> Int# -> State# d -> State# d Source
copyByteArray# src src_ofs dst dst_ofs len copies the range starting at offset src_ofs of length len from the ByteArray# src to the MutableByteArray# dst starting at offset dst_ofs. Both arrays must fully contain the specified ranges, but this is not checked. The two arrays must not be the same array in different states, but this is not checked either.
Warning: this can fail with an unchecked exception.
copyByteArrayToAddr# :: ByteArray# -> Int# -> Addr# -> Int# -> State# d -> State# d Source
Copy a range of the ByteArray# to the memory range starting at the Addr#. The ByteArray# and the memory region at Addr# must fully contain the specified ranges, but this is not checked. The Addr# must not point into the ByteArray# (e.g. if the ByteArray# were pinned), but this is not checked either.
Warning: this can fail with an unchecked exception.
copyMutableArray# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). MutableArray# d a -> Int# -> MutableArray# d a -> Int# -> Int# -> State# d -> State# d Source
Given a source array, an offset into the source array, a destination array, an offset into the destination array, and a number of elements to copy, copy the elements from the source array to the destination array. Both arrays must fully contain the specified ranges, but this is not checked. In the case where the source and destination are the same array the source and destination regions may overlap.
Warning: this can fail with an unchecked exception.
copyMutableByteArray# :: MutableByteArray# d -> Int# -> MutableByteArray# d -> Int# -> Int# -> State# d -> State# d Source
copyMutableByteArray# src src_ofs dst dst_ofs len copies the range starting at offset src_ofs of length len from the MutableByteArray# src to the MutableByteArray# dst starting at offset dst_ofs. Both arrays must fully contain the specified ranges, but this is not checked. The regions are allowed to overlap, although this is only possible when the same array is provided as both the source and the destination.
Warning: this can fail with an unchecked exception.
copyMutableByteArrayNonOverlapping# :: MutableByteArray# d -> Int# -> MutableByteArray# d -> Int# -> Int# -> State# d -> State# d Source
copyMutableByteArrayNonOverlapping# src src_ofs dst dst_ofs len copies the range starting at offset src_ofs of length len from the MutableByteArray# src to the MutableByteArray# dst starting at offset dst_ofs. Both arrays must fully contain the specified ranges, but this is not checked. The regions are not allowed to overlap, but this is also not checked.
Warning: this can fail with an unchecked exception.
Since: ghc-prim-0.11.0
copyMutableByteArrayToAddr# :: MutableByteArray# d -> Int# -> Addr# -> Int# -> State# d -> State# d Source
Copy a range of the MutableByteArray# to the memory range starting at the Addr#. The MutableByteArray# and the memory region at Addr# must fully contain the specified ranges, but this is not checked. The Addr# must not point into the MutableByteArray# (e.g. if the MutableByteArray# were pinned), but this is not checked either.
Warning: this can fail with an unchecked exception.
copySmallArray# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)) d. SmallArray# a -> Int# -> SmallMutableArray# d a -> Int# -> Int# -> State# d -> State# d Source
Given a source array, an offset into the source array, a destination array, an offset into the destination array, and a number of elements to copy, copy the elements from the source array to the destination array. Both arrays must fully contain the specified ranges, but this is not checked. The two arrays must not be the same array in different states, but this is not checked either.
Warning: this can fail with an unchecked exception.
copySmallMutableArray# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). SmallMutableArray# d a -> Int# -> SmallMutableArray# d a -> Int# -> Int# -> State# d -> State# d Source
Given a source array, an offset into the source array, a destination array, an offset into the destination array, and a number of elements to copy, copy the elements from the source array to the destination array. The source and destination arrays can refer to the same array. Both arrays must fully contain the specified ranges, but this is not checked. The regions are allowed to overlap, although this is only possible when the same array is provided as both the source and the destination.
Warning: this can fail with an unchecked exception.
cosDouble# :: Double# -> Double# Source
cosFloat# :: Float# -> Float# Source
coshDouble# :: Double# -> Double# Source
coshFloat# :: Float# -> Float# Source
Count trailing zeros in a word.
ctz16# :: Word# -> Word# Source
Count trailing zeros in the lower 16 bits of a word.
ctz32# :: Word# -> Word# Source
Count trailing zeros in the lower 32 bits of a word.
ctz64# :: Word64# -> Word# Source
Count trailing zeros in a 64-bit word.
ctz8# :: Word# -> Word# Source
Count trailing zeros in the lower 8 bits of a word.
deRefStablePtr# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)). StablePtr# a -> State# RealWorld -> (# State# RealWorld, a #) Source
deRefWeak# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)). Weak# a -> State# RealWorld -> (# State# RealWorld, Int#, a #) Source
decodeDouble_2Int# :: Double# -> (# Int#, Word#, Word#, Int# #) Source
Convert to integer. First component of the result is -1 or 1, indicating the sign of the mantissa. The next two are the high and low 32 bits of the mantissa respectively, and the last is the exponent.
decodeDouble_Int64# :: Double# -> (# Int64#, Int# #) Source
Decode Double# into mantissa and base-2 exponent.
decodeFloat_Int# :: Float# -> (# Int#, Int# #) Source
Convert to integers. First Int# in result is the mantissa; second is the exponent.
delay# :: Int# -> State# d -> State# d Source
Sleep specified number of microseconds.
divideDoubleX2# :: DoubleX2# -> DoubleX2# -> DoubleX2# Source
Divide two vectors element-wise.
divideDoubleX4# :: DoubleX4# -> DoubleX4# -> DoubleX4# Source
Divide two vectors element-wise.
divideDoubleX8# :: DoubleX8# -> DoubleX8# -> DoubleX8# Source
Divide two vectors element-wise.
divideFloat# :: Float# -> Float# -> Float# Source
divideFloatX16# :: FloatX16# -> FloatX16# -> FloatX16# Source
Divide two vectors element-wise.
divideFloatX4# :: FloatX4# -> FloatX4# -> FloatX4# Source
Divide two vectors element-wise.
divideFloatX8# :: FloatX8# -> FloatX8# -> FloatX8# Source
Divide two vectors element-wise.
double2Float# :: Double# -> Float# Source
double2Int# :: Double# -> Int# Source
Truncates a Double# value to the nearest Int#. Results are undefined if the truncation if truncation yields a value outside the range of Int#.
eqAddr# :: Addr# -> Addr# -> Int# Source
eqChar# :: Char# -> Char# -> Int# Source
eqFloat# :: Float# -> Float# -> Int# Source
eqInt16# :: Int16# -> Int16# -> Int# Source
eqInt32# :: Int32# -> Int32# -> Int# Source
eqInt64# :: Int64# -> Int64# -> Int# Source
eqInt8# :: Int8# -> Int8# -> Int# Source
eqStablePtr# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)). StablePtr# a -> StablePtr# a -> Int# Source
eqWord# :: Word# -> Word# -> Int# Source
eqWord16# :: Word16# -> Word16# -> Int# Source
eqWord32# :: Word32# -> Word32# -> Int# Source
eqWord64# :: Word64# -> Word64# -> Int# Source
eqWord8# :: Word8# -> Word8# -> Int# Source
expDouble# :: Double# -> Double# Source
expFloat# :: Float# -> Float# Source
expm1Double# :: Double# -> Double# Source
expm1Float# :: Float# -> Float# Source
fabsDouble# :: Double# -> Double# Source
fabsFloat# :: Float# -> Float# Source
fetchAddIntArray# :: MutableByteArray# d -> Int# -> Int# -> State# d -> (# State# d, Int# #) Source
Given an array, and offset in machine words, and a value to add, atomically add the value to the element. Returns the value of the element before the operation. Implies a full memory barrier.
Warning: this can fail with an unchecked exception.
fetchAddWordAddr# :: Addr# -> Word# -> State# d -> (# State# d, Word# #) Source
Given an address, and a value to add, atomically add the value to the element. Returns the value of the element before the operation. Implies a full memory barrier.
Warning: this can fail with an unchecked exception.
fetchAndIntArray# :: MutableByteArray# d -> Int# -> Int# -> State# d -> (# State# d, Int# #) Source
Given an array, and offset in machine words, and a value to AND, atomically AND the value into the element. Returns the value of the element before the operation. Implies a full memory barrier.
Warning: this can fail with an unchecked exception.
fetchAndWordAddr# :: Addr# -> Word# -> State# d -> (# State# d, Word# #) Source
Given an address, and a value to AND, atomically AND the value into the element. Returns the value of the element before the operation. Implies a full memory barrier.
Warning: this can fail with an unchecked exception.
fetchNandIntArray# :: MutableByteArray# d -> Int# -> Int# -> State# d -> (# State# d, Int# #) Source
Given an array, and offset in machine words, and a value to NAND, atomically NAND the value into the element. Returns the value of the element before the operation. Implies a full memory barrier.
Warning: this can fail with an unchecked exception.
fetchNandWordAddr# :: Addr# -> Word# -> State# d -> (# State# d, Word# #) Source
Given an address, and a value to NAND, atomically NAND the value into the element. Returns the value of the element before the operation. Implies a full memory barrier.
Warning: this can fail with an unchecked exception.
fetchOrIntArray# :: MutableByteArray# d -> Int# -> Int# -> State# d -> (# State# d, Int# #) Source
Given an array, and offset in machine words, and a value to OR, atomically OR the value into the element. Returns the value of the element before the operation. Implies a full memory barrier.
Warning: this can fail with an unchecked exception.
fetchOrWordAddr# :: Addr# -> Word# -> State# d -> (# State# d, Word# #) Source
Given an address, and a value to OR, atomically OR the value into the element. Returns the value of the element before the operation. Implies a full memory barrier.
Warning: this can fail with an unchecked exception.
fetchSubIntArray# :: MutableByteArray# d -> Int# -> Int# -> State# d -> (# State# d, Int# #) Source
Given an array, and offset in machine words, and a value to subtract, atomically subtract the value from the element. Returns the value of the element before the operation. Implies a full memory barrier.
Warning: this can fail with an unchecked exception.
fetchSubWordAddr# :: Addr# -> Word# -> State# d -> (# State# d, Word# #) Source
Given an address, and a value to subtract, atomically subtract the value from the element. Returns the value of the element before the operation. Implies a full memory barrier.
Warning: this can fail with an unchecked exception.
fetchXorIntArray# :: MutableByteArray# d -> Int# -> Int# -> State# d -> (# State# d, Int# #) Source
Given an array, and offset in machine words, and a value to XOR, atomically XOR the value into the element. Returns the value of the element before the operation. Implies a full memory barrier.
Warning: this can fail with an unchecked exception.
fetchXorWordAddr# :: Addr# -> Word# -> State# d -> (# State# d, Word# #) Source
Given an address, and a value to XOR, atomically XOR the value into the element. Returns the value of the element before the operation. Implies a full memory barrier.
Warning: this can fail with an unchecked exception.
finalizeWeak# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)) b. Weak# a -> State# RealWorld -> (# State# RealWorld, Int#, State# RealWorld -> (# State# RealWorld, b #) #) Source
Finalize a weak pointer. The return value is an unboxed tuple containing the new state of the world and an "unboxed Maybe", represented by an Int# and a (possibly invalid) finalization action. An Int# of 1 indicates that the finalizer is valid. The return value b from the finalizer should be ignored.
float2Double# :: Float# -> Double# Source
float2Int# :: Float# -> Int# Source
Truncates a Float# value to the nearest Int#. Results are undefined if the truncation if truncation yields a value outside the range of Int#.
fmaddDouble# :: Double# -> Double# -> Double# -> Double# Source
Fused multiply-add operation x*y+z. See GHC.Prim.
fmaddFloat# :: Float# -> Float# -> Float# -> Float# Source
Fused multiply-add operation x*y+z. See GHC.Prim.
fmsubDouble# :: Double# -> Double# -> Double# -> Double# Source
Fused multiply-subtract operation x*y-z. See GHC.Prim.
fmsubFloat# :: Float# -> Float# -> Float# -> Float# Source
Fused multiply-subtract operation x*y-z. See GHC.Prim.
fnmaddDouble# :: Double# -> Double# -> Double# -> Double# Source
Fused negate-multiply-add operation -x*y+z. See GHC.Prim.
fnmaddFloat# :: Float# -> Float# -> Float# -> Float# Source
Fused negate-multiply-add operation -x*y+z. See GHC.Prim.
fnmsubDouble# :: Double# -> Double# -> Double# -> Double# Source
Fused negate-multiply-subtract operation -x*y-z. See GHC.Prim.
fnmsubFloat# :: Float# -> Float# -> Float# -> Float# Source
Fused negate-multiply-subtract operation -x*y-z. See GHC.Prim.
fork# :: (State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> (# State# RealWorld, ThreadId# #) Source
forkOn# :: Int# -> (State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> (# State# RealWorld, ThreadId# #) Source
freezeArray# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). MutableArray# d a -> Int# -> Int# -> State# d -> (# State# d, Array# a #) Source
Given a source array, an offset into the source array, and a number of elements to copy, create a new array with the elements from the source array. The provided array must fully contain the specified range, but this is not checked.
Warning: this can fail with an unchecked exception.
freezeSmallArray# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). SmallMutableArray# d a -> Int# -> Int# -> State# d -> (# State# d, SmallArray# a #) Source
Given a source array, an offset into the source array, and a number of elements to copy, create a new array with the elements from the source array. The provided array must fully contain the specified range, but this is not checked.
Warning: this can fail with an unchecked exception.
geAddr# :: Addr# -> Addr# -> Int# Source
geChar# :: Char# -> Char# -> Int# Source
geFloat# :: Float# -> Float# -> Int# Source
geInt16# :: Int16# -> Int16# -> Int# Source
geInt32# :: Int32# -> Int32# -> Int# Source
geInt64# :: Int64# -> Int64# -> Int# Source
geInt8# :: Int8# -> Int8# -> Int# Source
geWord# :: Word# -> Word# -> Int# Source
geWord16# :: Word16# -> Word16# -> Int# Source
geWord32# :: Word32# -> Word32# -> Int# Source
geWord64# :: Word64# -> Word64# -> Int# Source
geWord8# :: Word8# -> Word8# -> Int# Source
getApStackVal# :: a -> Int# -> (# Int#, b #) Source
getCCSOf# :: a -> State# d -> (# State# d, Addr# #) Source
getCurrentCCS# :: a -> State# d -> (# State# d, Addr# #) Source
Returns the current CostCentreStack (value is NULL if not profiling). Takes a dummy argument which can be used to avoid the call to getCurrentCCS# being floated out by the simplifier, which would result in an uninformative stack (CAF).
getMaskingState# :: State# RealWorld -> (# State# RealWorld, Int# #) Source
getSizeofMutableByteArray# :: MutableByteArray# d -> State# d -> (# State# d, Int# #) Source
Return the number of elements in the array, correctly accounting for the effect of shrinkMutableByteArray# and resizeMutableByteArray#.
Since: ghc-prim-0.5.0.0
getSizeofSmallMutableArray# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). SmallMutableArray# d a -> State# d -> (# State# d, Int# #) Source
Return the number of elements in the array, correctly accounting for the effect of shrinkSmallMutableArray# and resizeSmallMutableArray#.
Since: ghc-prim-0.6.1
getSpark# :: State# d -> (# State# d, Int#, a #) Source
gtAddr# :: Addr# -> Addr# -> Int# Source
gtChar# :: Char# -> Char# -> Int# Source
gtFloat# :: Float# -> Float# -> Int# Source
gtInt16# :: Int16# -> Int16# -> Int# Source
gtInt32# :: Int32# -> Int32# -> Int# Source
gtInt64# :: Int64# -> Int64# -> Int# Source
gtInt8# :: Int8# -> Int8# -> Int# Source
gtWord# :: Word# -> Word# -> Int# Source
gtWord16# :: Word16# -> Word16# -> Int# Source
gtWord32# :: Word32# -> Word32# -> Int# Source
gtWord64# :: Word64# -> Word64# -> Int# Source
gtWord8# :: Word8# -> Word8# -> Int# Source
indexAddrArray# :: ByteArray# -> Int# -> Addr# Source
Read a machine address from immutable array; offset in machine words.
indexAddrOffAddr# :: Addr# -> Int# -> Addr# Source
Read a machine address from immutable address; offset in machine words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
indexArray# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)). Array# a -> Int# -> (# a #) Source
Read from the specified index of an immutable array. The result is packaged into an unboxed unary tuple; the result itself is not yet evaluated. Pattern matching on the tuple forces the indexing of the array to happen but does not evaluate the element itself. Evaluating the thunk prevents additional thunks from building up on the heap. Avoiding these thunks, in turn, reduces references to the argument array, allowing it to be garbage collected more promptly.
indexCharArray# :: ByteArray# -> Int# -> Char# Source
Read an 8-bit character from immutable array; offset in bytes.
indexCharOffAddr# :: Addr# -> Int# -> Char# Source
Read an 8-bit character from immutable address; offset in bytes.
indexDoubleArray# :: ByteArray# -> Int# -> Double# Source
Read a double-precision floating-point value from immutable array; offset in 8-byte words.
indexDoubleArrayAsDoubleX2# :: ByteArray# -> Int# -> DoubleX2# Source
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
indexDoubleArrayAsDoubleX4# :: ByteArray# -> Int# -> DoubleX4# Source
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
indexDoubleArrayAsDoubleX8# :: ByteArray# -> Int# -> DoubleX8# Source
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
indexDoubleOffAddr# :: Addr# -> Int# -> Double# Source
Read a double-precision floating-point value from immutable address; offset in 8-byte words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
indexDoubleOffAddrAsDoubleX2# :: Addr# -> Int# -> DoubleX2# Source
Reads vector; offset in scalar elements.
indexDoubleOffAddrAsDoubleX4# :: Addr# -> Int# -> DoubleX4# Source
Reads vector; offset in scalar elements.
indexDoubleOffAddrAsDoubleX8# :: Addr# -> Int# -> DoubleX8# Source
Reads vector; offset in scalar elements.
indexDoubleX2Array# :: ByteArray# -> Int# -> DoubleX2# Source
Read a vector from specified index of immutable array.
indexDoubleX2OffAddr# :: Addr# -> Int# -> DoubleX2# Source
Reads vector; offset in bytes.
indexDoubleX4Array# :: ByteArray# -> Int# -> DoubleX4# Source
Read a vector from specified index of immutable array.
indexDoubleX4OffAddr# :: Addr# -> Int# -> DoubleX4# Source
Reads vector; offset in bytes.
indexDoubleX8Array# :: ByteArray# -> Int# -> DoubleX8# Source
Read a vector from specified index of immutable array.
indexDoubleX8OffAddr# :: Addr# -> Int# -> DoubleX8# Source
Reads vector; offset in bytes.
indexFloatArray# :: ByteArray# -> Int# -> Float# Source
Read a single-precision floating-point value from immutable array; offset in 4-byte words.
indexFloatArrayAsFloatX16# :: ByteArray# -> Int# -> FloatX16# Source
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
indexFloatArrayAsFloatX4# :: ByteArray# -> Int# -> FloatX4# Source
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
indexFloatArrayAsFloatX8# :: ByteArray# -> Int# -> FloatX8# Source
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
indexFloatOffAddr# :: Addr# -> Int# -> Float# Source
Read a single-precision floating-point value from immutable address; offset in 4-byte words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
indexFloatOffAddrAsFloatX16# :: Addr# -> Int# -> FloatX16# Source
Reads vector; offset in scalar elements.
indexFloatOffAddrAsFloatX4# :: Addr# -> Int# -> FloatX4# Source
Reads vector; offset in scalar elements.
indexFloatOffAddrAsFloatX8# :: Addr# -> Int# -> FloatX8# Source
Reads vector; offset in scalar elements.
indexFloatX16Array# :: ByteArray# -> Int# -> FloatX16# Source
Read a vector from specified index of immutable array.
indexFloatX16OffAddr# :: Addr# -> Int# -> FloatX16# Source
Reads vector; offset in bytes.
indexFloatX4Array# :: ByteArray# -> Int# -> FloatX4# Source
Read a vector from specified index of immutable array.
indexFloatX4OffAddr# :: Addr# -> Int# -> FloatX4# Source
Reads vector; offset in bytes.
indexFloatX8Array# :: ByteArray# -> Int# -> FloatX8# Source
Read a vector from specified index of immutable array.
indexFloatX8OffAddr# :: Addr# -> Int# -> FloatX8# Source
Reads vector; offset in bytes.
indexInt16Array# :: ByteArray# -> Int# -> Int16# Source
Read a 16-bit signed integer from immutable array; offset in 2-byte words.
indexInt16ArrayAsInt16X16# :: ByteArray# -> Int# -> Int16X16# Source
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
indexInt16ArrayAsInt16X32# :: ByteArray# -> Int# -> Int16X32# Source
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
indexInt16ArrayAsInt16X8# :: ByteArray# -> Int# -> Int16X8# Source
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
indexInt16OffAddr# :: Addr# -> Int# -> Int16# Source
Read a 16-bit signed integer from immutable address; offset in 2-byte words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
indexInt16OffAddrAsInt16X16# :: Addr# -> Int# -> Int16X16# Source
Reads vector; offset in scalar elements.
indexInt16OffAddrAsInt16X32# :: Addr# -> Int# -> Int16X32# Source
Reads vector; offset in scalar elements.
indexInt16OffAddrAsInt16X8# :: Addr# -> Int# -> Int16X8# Source
Reads vector; offset in scalar elements.
indexInt16X16Array# :: ByteArray# -> Int# -> Int16X16# Source
Read a vector from specified index of immutable array.
indexInt16X16OffAddr# :: Addr# -> Int# -> Int16X16# Source
Reads vector; offset in bytes.
indexInt16X32Array# :: ByteArray# -> Int# -> Int16X32# Source
Read a vector from specified index of immutable array.
indexInt16X32OffAddr# :: Addr# -> Int# -> Int16X32# Source
Reads vector; offset in bytes.
indexInt16X8Array# :: ByteArray# -> Int# -> Int16X8# Source
Read a vector from specified index of immutable array.
indexInt16X8OffAddr# :: Addr# -> Int# -> Int16X8# Source
Reads vector; offset in bytes.
indexInt32Array# :: ByteArray# -> Int# -> Int32# Source
Read a 32-bit signed integer from immutable array; offset in 4-byte words.
indexInt32ArrayAsInt32X16# :: ByteArray# -> Int# -> Int32X16# Source
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
indexInt32ArrayAsInt32X4# :: ByteArray# -> Int# -> Int32X4# Source
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
indexInt32ArrayAsInt32X8# :: ByteArray# -> Int# -> Int32X8# Source
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
indexInt32OffAddr# :: Addr# -> Int# -> Int32# Source
Read a 32-bit signed integer from immutable address; offset in 4-byte words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
indexInt32OffAddrAsInt32X16# :: Addr# -> Int# -> Int32X16# Source
Reads vector; offset in scalar elements.
indexInt32OffAddrAsInt32X4# :: Addr# -> Int# -> Int32X4# Source
Reads vector; offset in scalar elements.
indexInt32OffAddrAsInt32X8# :: Addr# -> Int# -> Int32X8# Source
Reads vector; offset in scalar elements.
indexInt32X16Array# :: ByteArray# -> Int# -> Int32X16# Source
Read a vector from specified index of immutable array.
indexInt32X16OffAddr# :: Addr# -> Int# -> Int32X16# Source
Reads vector; offset in bytes.
indexInt32X4Array# :: ByteArray# -> Int# -> Int32X4# Source
Read a vector from specified index of immutable array.
indexInt32X4OffAddr# :: Addr# -> Int# -> Int32X4# Source
Reads vector; offset in bytes.
indexInt32X8Array# :: ByteArray# -> Int# -> Int32X8# Source
Read a vector from specified index of immutable array.
indexInt32X8OffAddr# :: Addr# -> Int# -> Int32X8# Source
Reads vector; offset in bytes.
indexInt64Array# :: ByteArray# -> Int# -> Int64# Source
Read a 64-bit signed integer from immutable array; offset in 8-byte words.
indexInt64ArrayAsInt64X2# :: ByteArray# -> Int# -> Int64X2# Source
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
indexInt64ArrayAsInt64X4# :: ByteArray# -> Int# -> Int64X4# Source
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
indexInt64ArrayAsInt64X8# :: ByteArray# -> Int# -> Int64X8# Source
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
indexInt64OffAddr# :: Addr# -> Int# -> Int64# Source
Read a 64-bit signed integer from immutable address; offset in 8-byte words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
indexInt64OffAddrAsInt64X2# :: Addr# -> Int# -> Int64X2# Source
Reads vector; offset in scalar elements.
indexInt64OffAddrAsInt64X4# :: Addr# -> Int# -> Int64X4# Source
Reads vector; offset in scalar elements.
indexInt64OffAddrAsInt64X8# :: Addr# -> Int# -> Int64X8# Source
Reads vector; offset in scalar elements.
indexInt64X2Array# :: ByteArray# -> Int# -> Int64X2# Source
Read a vector from specified index of immutable array.
indexInt64X2OffAddr# :: Addr# -> Int# -> Int64X2# Source
Reads vector; offset in bytes.
indexInt64X4Array# :: ByteArray# -> Int# -> Int64X4# Source
Read a vector from specified index of immutable array.
indexInt64X4OffAddr# :: Addr# -> Int# -> Int64X4# Source
Reads vector; offset in bytes.
indexInt64X8Array# :: ByteArray# -> Int# -> Int64X8# Source
Read a vector from specified index of immutable array.
indexInt64X8OffAddr# :: Addr# -> Int# -> Int64X8# Source
Reads vector; offset in bytes.
indexInt8Array# :: ByteArray# -> Int# -> Int8# Source
Read an 8-bit signed integer from immutable array; offset in bytes.
indexInt8ArrayAsInt8X16# :: ByteArray# -> Int# -> Int8X16# Source
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
indexInt8ArrayAsInt8X32# :: ByteArray# -> Int# -> Int8X32# Source
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
indexInt8ArrayAsInt8X64# :: ByteArray# -> Int# -> Int8X64# Source
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
indexInt8OffAddr# :: Addr# -> Int# -> Int8# Source
Read an 8-bit signed integer from immutable address; offset in bytes.
indexInt8OffAddrAsInt8X16# :: Addr# -> Int# -> Int8X16# Source
Reads vector; offset in scalar elements.
indexInt8OffAddrAsInt8X32# :: Addr# -> Int# -> Int8X32# Source
Reads vector; offset in scalar elements.
indexInt8OffAddrAsInt8X64# :: Addr# -> Int# -> Int8X64# Source
Reads vector; offset in scalar elements.
indexInt8X16Array# :: ByteArray# -> Int# -> Int8X16# Source
Read a vector from specified index of immutable array.
indexInt8X16OffAddr# :: Addr# -> Int# -> Int8X16# Source
Reads vector; offset in bytes.
indexInt8X32Array# :: ByteArray# -> Int# -> Int8X32# Source
Read a vector from specified index of immutable array.
indexInt8X32OffAddr# :: Addr# -> Int# -> Int8X32# Source
Reads vector; offset in bytes.
indexInt8X64Array# :: ByteArray# -> Int# -> Int8X64# Source
Read a vector from specified index of immutable array.
indexInt8X64OffAddr# :: Addr# -> Int# -> Int8X64# Source
Reads vector; offset in bytes.
indexIntArray# :: ByteArray# -> Int# -> Int# Source
Read a word-sized integer from immutable array; offset in machine words.
indexIntOffAddr# :: Addr# -> Int# -> Int# Source
Read a word-sized integer from immutable address; offset in machine words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
indexSmallArray# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)). SmallArray# a -> Int# -> (# a #) Source
Read from specified index of immutable array. Result is packaged into an unboxed singleton; the result itself is not yet evaluated.
indexStablePtrArray# :: ByteArray# -> Int# -> StablePtr# a Source
Read a StablePtr# value from immutable array; offset in machine words.
indexStablePtrOffAddr# :: Addr# -> Int# -> StablePtr# a Source
Read a StablePtr# value from immutable address; offset in machine words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
indexWideCharArray# :: ByteArray# -> Int# -> Char# Source
Read a 32-bit character from immutable array; offset in 4-byte words.
indexWideCharOffAddr# :: Addr# -> Int# -> Char# Source
Read a 32-bit character from immutable address; offset in 4-byte words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
indexWord16Array# :: ByteArray# -> Int# -> Word16# Source
Read a 16-bit unsigned integer from immutable array; offset in 2-byte words.
indexWord16ArrayAsWord16X16# :: ByteArray# -> Int# -> Word16X16# Source
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
indexWord16ArrayAsWord16X32# :: ByteArray# -> Int# -> Word16X32# Source
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
indexWord16ArrayAsWord16X8# :: ByteArray# -> Int# -> Word16X8# Source
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
indexWord16OffAddr# :: Addr# -> Int# -> Word16# Source
Read a 16-bit unsigned integer from immutable address; offset in 2-byte words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
indexWord16OffAddrAsWord16X16# :: Addr# -> Int# -> Word16X16# Source
Reads vector; offset in scalar elements.
indexWord16OffAddrAsWord16X32# :: Addr# -> Int# -> Word16X32# Source
Reads vector; offset in scalar elements.
indexWord16OffAddrAsWord16X8# :: Addr# -> Int# -> Word16X8# Source
Reads vector; offset in scalar elements.
indexWord16X16Array# :: ByteArray# -> Int# -> Word16X16# Source
Read a vector from specified index of immutable array.
indexWord16X16OffAddr# :: Addr# -> Int# -> Word16X16# Source
Reads vector; offset in bytes.
indexWord16X32Array# :: ByteArray# -> Int# -> Word16X32# Source
Read a vector from specified index of immutable array.
indexWord16X32OffAddr# :: Addr# -> Int# -> Word16X32# Source
Reads vector; offset in bytes.
indexWord16X8Array# :: ByteArray# -> Int# -> Word16X8# Source
Read a vector from specified index of immutable array.
indexWord16X8OffAddr# :: Addr# -> Int# -> Word16X8# Source
Reads vector; offset in bytes.
indexWord32Array# :: ByteArray# -> Int# -> Word32# Source
Read a 32-bit unsigned integer from immutable array; offset in 4-byte words.
indexWord32ArrayAsWord32X16# :: ByteArray# -> Int# -> Word32X16# Source
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
indexWord32ArrayAsWord32X4# :: ByteArray# -> Int# -> Word32X4# Source
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
indexWord32ArrayAsWord32X8# :: ByteArray# -> Int# -> Word32X8# Source
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
indexWord32OffAddr# :: Addr# -> Int# -> Word32# Source
Read a 32-bit unsigned integer from immutable address; offset in 4-byte words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
indexWord32OffAddrAsWord32X16# :: Addr# -> Int# -> Word32X16# Source
Reads vector; offset in scalar elements.
indexWord32OffAddrAsWord32X4# :: Addr# -> Int# -> Word32X4# Source
Reads vector; offset in scalar elements.
indexWord32OffAddrAsWord32X8# :: Addr# -> Int# -> Word32X8# Source
Reads vector; offset in scalar elements.
indexWord32X16Array# :: ByteArray# -> Int# -> Word32X16# Source
Read a vector from specified index of immutable array.
indexWord32X16OffAddr# :: Addr# -> Int# -> Word32X16# Source
Reads vector; offset in bytes.
indexWord32X4Array# :: ByteArray# -> Int# -> Word32X4# Source
Read a vector from specified index of immutable array.
indexWord32X4OffAddr# :: Addr# -> Int# -> Word32X4# Source
Reads vector; offset in bytes.
indexWord32X8Array# :: ByteArray# -> Int# -> Word32X8# Source
Read a vector from specified index of immutable array.
indexWord32X8OffAddr# :: Addr# -> Int# -> Word32X8# Source
Reads vector; offset in bytes.
indexWord64Array# :: ByteArray# -> Int# -> Word64# Source
Read a 64-bit unsigned integer from immutable array; offset in 8-byte words.
indexWord64ArrayAsWord64X2# :: ByteArray# -> Int# -> Word64X2# Source
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
indexWord64ArrayAsWord64X4# :: ByteArray# -> Int# -> Word64X4# Source
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
indexWord64ArrayAsWord64X8# :: ByteArray# -> Int# -> Word64X8# Source
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
indexWord64OffAddr# :: Addr# -> Int# -> Word64# Source
Read a 64-bit unsigned integer from immutable address; offset in 8-byte words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
indexWord64OffAddrAsWord64X2# :: Addr# -> Int# -> Word64X2# Source
Reads vector; offset in scalar elements.
indexWord64OffAddrAsWord64X4# :: Addr# -> Int# -> Word64X4# Source
Reads vector; offset in scalar elements.
indexWord64OffAddrAsWord64X8# :: Addr# -> Int# -> Word64X8# Source
Reads vector; offset in scalar elements.
indexWord64X2Array# :: ByteArray# -> Int# -> Word64X2# Source
Read a vector from specified index of immutable array.
indexWord64X2OffAddr# :: Addr# -> Int# -> Word64X2# Source
Reads vector; offset in bytes.
indexWord64X4Array# :: ByteArray# -> Int# -> Word64X4# Source
Read a vector from specified index of immutable array.
indexWord64X4OffAddr# :: Addr# -> Int# -> Word64X4# Source
Reads vector; offset in bytes.
indexWord64X8Array# :: ByteArray# -> Int# -> Word64X8# Source
Read a vector from specified index of immutable array.
indexWord64X8OffAddr# :: Addr# -> Int# -> Word64X8# Source
Reads vector; offset in bytes.
indexWord8Array# :: ByteArray# -> Int# -> Word8# Source
Read an 8-bit unsigned integer from immutable array; offset in bytes.
indexWord8ArrayAsAddr# :: ByteArray# -> Int# -> Addr# Source
Read a machine address from immutable array; offset in bytes.
indexWord8ArrayAsChar# :: ByteArray# -> Int# -> Char# Source
Read an 8-bit character from immutable array; offset in bytes.
indexWord8ArrayAsDouble# :: ByteArray# -> Int# -> Double# Source
Read a double-precision floating-point value from immutable array; offset in bytes.
indexWord8ArrayAsFloat# :: ByteArray# -> Int# -> Float# Source
Read a single-precision floating-point value from immutable array; offset in bytes.
indexWord8ArrayAsInt# :: ByteArray# -> Int# -> Int# Source
Read a word-sized integer from immutable array; offset in bytes.
indexWord8ArrayAsInt16# :: ByteArray# -> Int# -> Int16# Source
Read a 16-bit signed integer from immutable array; offset in bytes.
indexWord8ArrayAsInt32# :: ByteArray# -> Int# -> Int32# Source
Read a 32-bit signed integer from immutable array; offset in bytes.
indexWord8ArrayAsInt64# :: ByteArray# -> Int# -> Int64# Source
Read a 64-bit signed integer from immutable array; offset in bytes.
indexWord8ArrayAsStablePtr# :: ByteArray# -> Int# -> StablePtr# a Source
Read a StablePtr# value from immutable array; offset in bytes.
indexWord8ArrayAsWideChar# :: ByteArray# -> Int# -> Char# Source
Read a 32-bit character from immutable array; offset in bytes.
indexWord8ArrayAsWord# :: ByteArray# -> Int# -> Word# Source
Read a word-sized unsigned integer from immutable array; offset in bytes.
indexWord8ArrayAsWord16# :: ByteArray# -> Int# -> Word16# Source
Read a 16-bit unsigned integer from immutable array; offset in bytes.
indexWord8ArrayAsWord32# :: ByteArray# -> Int# -> Word32# Source
Read a 32-bit unsigned integer from immutable array; offset in bytes.
indexWord8ArrayAsWord64# :: ByteArray# -> Int# -> Word64# Source
Read a 64-bit unsigned integer from immutable array; offset in bytes.
indexWord8ArrayAsWord8X16# :: ByteArray# -> Int# -> Word8X16# Source
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
indexWord8ArrayAsWord8X32# :: ByteArray# -> Int# -> Word8X32# Source
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
indexWord8ArrayAsWord8X64# :: ByteArray# -> Int# -> Word8X64# Source
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
indexWord8OffAddr# :: Addr# -> Int# -> Word8# Source
Read an 8-bit unsigned integer from immutable address; offset in bytes.
indexWord8OffAddrAsAddr# :: Addr# -> Int# -> Addr# Source
Read a machine address from immutable address; offset in bytes.
indexWord8OffAddrAsChar# :: Addr# -> Int# -> Char# Source
Read an 8-bit character from immutable address; offset in bytes.
indexWord8OffAddrAsDouble# :: Addr# -> Int# -> Double# Source
Read a double-precision floating-point value from immutable address; offset in bytes.
indexWord8OffAddrAsFloat# :: Addr# -> Int# -> Float# Source
Read a single-precision floating-point value from immutable address; offset in bytes.
indexWord8OffAddrAsInt# :: Addr# -> Int# -> Int# Source
Read a word-sized integer from immutable address; offset in bytes.
indexWord8OffAddrAsInt16# :: Addr# -> Int# -> Int16# Source
Read a 16-bit signed integer from immutable address; offset in bytes.
indexWord8OffAddrAsInt32# :: Addr# -> Int# -> Int32# Source
Read a 32-bit signed integer from immutable address; offset in bytes.
indexWord8OffAddrAsInt64# :: Addr# -> Int# -> Int64# Source
Read a 64-bit signed integer from immutable address; offset in bytes.
indexWord8OffAddrAsStablePtr# :: Addr# -> Int# -> StablePtr# a Source
Read a StablePtr# value from immutable address; offset in bytes.
indexWord8OffAddrAsWideChar# :: Addr# -> Int# -> Char# Source
Read a 32-bit character from immutable address; offset in bytes.
indexWord8OffAddrAsWord# :: Addr# -> Int# -> Word# Source
Read a word-sized unsigned integer from immutable address; offset in bytes.
indexWord8OffAddrAsWord16# :: Addr# -> Int# -> Word16# Source
Read a 16-bit unsigned integer from immutable address; offset in bytes.
indexWord8OffAddrAsWord32# :: Addr# -> Int# -> Word32# Source
Read a 32-bit unsigned integer from immutable address; offset in bytes.
indexWord8OffAddrAsWord64# :: Addr# -> Int# -> Word64# Source
Read a 64-bit unsigned integer from immutable address; offset in bytes.
indexWord8OffAddrAsWord8X16# :: Addr# -> Int# -> Word8X16# Source
Reads vector; offset in scalar elements.
indexWord8OffAddrAsWord8X32# :: Addr# -> Int# -> Word8X32# Source
Reads vector; offset in scalar elements.
indexWord8OffAddrAsWord8X64# :: Addr# -> Int# -> Word8X64# Source
Reads vector; offset in scalar elements.
indexWord8X16Array# :: ByteArray# -> Int# -> Word8X16# Source
Read a vector from specified index of immutable array.
indexWord8X16OffAddr# :: Addr# -> Int# -> Word8X16# Source
Reads vector; offset in bytes.
indexWord8X32Array# :: ByteArray# -> Int# -> Word8X32# Source
Read a vector from specified index of immutable array.
indexWord8X32OffAddr# :: Addr# -> Int# -> Word8X32# Source
Reads vector; offset in bytes.
indexWord8X64Array# :: ByteArray# -> Int# -> Word8X64# Source
Read a vector from specified index of immutable array.
indexWord8X64OffAddr# :: Addr# -> Int# -> Word8X64# Source
Reads vector; offset in bytes.
indexWordArray# :: ByteArray# -> Int# -> Word# Source
Read a word-sized unsigned integer from immutable array; offset in machine words.
indexWordOffAddr# :: Addr# -> Int# -> Word# Source
Read a word-sized unsigned integer from immutable address; offset in machine words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
insertDoubleX2# :: DoubleX2# -> Double# -> Int# -> DoubleX2# Source
Insert a scalar at the given position in a vector.
insertDoubleX4# :: DoubleX4# -> Double# -> Int# -> DoubleX4# Source
Insert a scalar at the given position in a vector.
insertDoubleX8# :: DoubleX8# -> Double# -> Int# -> DoubleX8# Source
Insert a scalar at the given position in a vector.
insertFloatX16# :: FloatX16# -> Float# -> Int# -> FloatX16# Source
Insert a scalar at the given position in a vector.
insertFloatX4# :: FloatX4# -> Float# -> Int# -> FloatX4# Source
Insert a scalar at the given position in a vector.
insertFloatX8# :: FloatX8# -> Float# -> Int# -> FloatX8# Source
Insert a scalar at the given position in a vector.
insertInt16X16# :: Int16X16# -> Int16# -> Int# -> Int16X16# Source
Insert a scalar at the given position in a vector.
insertInt16X32# :: Int16X32# -> Int16# -> Int# -> Int16X32# Source
Insert a scalar at the given position in a vector.
insertInt16X8# :: Int16X8# -> Int16# -> Int# -> Int16X8# Source
Insert a scalar at the given position in a vector.
insertInt32X16# :: Int32X16# -> Int32# -> Int# -> Int32X16# Source
Insert a scalar at the given position in a vector.
insertInt32X4# :: Int32X4# -> Int32# -> Int# -> Int32X4# Source
Insert a scalar at the given position in a vector.
insertInt32X8# :: Int32X8# -> Int32# -> Int# -> Int32X8# Source
Insert a scalar at the given position in a vector.
insertInt64X2# :: Int64X2# -> Int64# -> Int# -> Int64X2# Source
Insert a scalar at the given position in a vector.
insertInt64X4# :: Int64X4# -> Int64# -> Int# -> Int64X4# Source
Insert a scalar at the given position in a vector.
insertInt64X8# :: Int64X8# -> Int64# -> Int# -> Int64X8# Source
Insert a scalar at the given position in a vector.
insertInt8X16# :: Int8X16# -> Int8# -> Int# -> Int8X16# Source
Insert a scalar at the given position in a vector.
insertInt8X32# :: Int8X32# -> Int8# -> Int# -> Int8X32# Source
Insert a scalar at the given position in a vector.
insertInt8X64# :: Int8X64# -> Int8# -> Int# -> Int8X64# Source
Insert a scalar at the given position in a vector.
insertWord16X16# :: Word16X16# -> Word16# -> Int# -> Word16X16# Source
Insert a scalar at the given position in a vector.
insertWord16X32# :: Word16X32# -> Word16# -> Int# -> Word16X32# Source
Insert a scalar at the given position in a vector.
insertWord16X8# :: Word16X8# -> Word16# -> Int# -> Word16X8# Source
Insert a scalar at the given position in a vector.
insertWord32X16# :: Word32X16# -> Word32# -> Int# -> Word32X16# Source
Insert a scalar at the given position in a vector.
insertWord32X4# :: Word32X4# -> Word32# -> Int# -> Word32X4# Source
Insert a scalar at the given position in a vector.
insertWord32X8# :: Word32X8# -> Word32# -> Int# -> Word32X8# Source
Insert a scalar at the given position in a vector.
insertWord64X2# :: Word64X2# -> Word64# -> Int# -> Word64X2# Source
Insert a scalar at the given position in a vector.
insertWord64X4# :: Word64X4# -> Word64# -> Int# -> Word64X4# Source
Insert a scalar at the given position in a vector.
insertWord64X8# :: Word64X8# -> Word64# -> Int# -> Word64X8# Source
Insert a scalar at the given position in a vector.
insertWord8X16# :: Word8X16# -> Word8# -> Int# -> Word8X16# Source
Insert a scalar at the given position in a vector.
insertWord8X32# :: Word8X32# -> Word8# -> Int# -> Word8X32# Source
Insert a scalar at the given position in a vector.
insertWord8X64# :: Word8X64# -> Word8# -> Int# -> Word8X64# Source
Insert a scalar at the given position in a vector.
int16ToInt# :: Int16# -> Int# Source
int16ToWord16# :: Int16# -> Word16# Source
int2Addr# :: Int# -> Addr# Source
Coerce directly from int to address. Users are discouraged from using this operation as it makes little sense on platforms with tagged pointers.
int2Double# :: Int# -> Double# Source
Convert an Int# to the corresponding Double# with the same integral value (up to truncation due to floating-point precision). e.g. int2Double# 1# == 1.0##
int2Float# :: Int# -> Float# Source
Convert an Int# to the corresponding Float# with the same integral value (up to truncation due to floating-point precision). e.g. int2Float# 1# == 1.0#
int2Word# :: Int# -> Word# Source
int32ToInt# :: Int32# -> Int# Source
int32ToWord32# :: Int32# -> Word32# Source
int64ToInt# :: Int64# -> Int# Source
int64ToWord64# :: Int64# -> Word64# Source
int8ToInt# :: Int8# -> Int# Source
int8ToWord8# :: Int8# -> Word8# Source
intToInt16# :: Int# -> Int16# Source
intToInt32# :: Int# -> Int32# Source
intToInt64# :: Int# -> Int64# Source
intToInt8# :: Int# -> Int8# Source
isByteArrayPinned# :: ByteArray# -> Int# Source
Determine whether a ByteArray# is guaranteed not to move.
isCurrentThreadBound# :: State# RealWorld -> (# State# RealWorld, Int# #) Source
isEmptyMVar# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). MVar# d a -> State# d -> (# State# d, Int# #) Source
Return 1 if MVar# is empty; 0 otherwise.
isMutableByteArrayPinned# :: MutableByteArray# d -> Int# Source
Determine whether a MutableByteArray# is guaranteed not to move during GC.
keepAlive# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)) d b. a -> State# d -> (State# d -> b) -> b Source
keepAlive# x s k keeps the value x alive during the execution of the computation k.
Note that the result type here isn't quite as unrestricted as the polymorphic type might suggest; see the section "RuntimeRep polymorphism in continuation-style primops" for details.
killThread# :: ThreadId# -> a -> State# RealWorld -> State# RealWorld Source
labelThread# :: ThreadId# -> ByteArray# -> State# RealWorld -> State# RealWorld Source
Set the label of the given thread. The ByteArray# should contain a UTF-8-encoded string.
leAddr# :: Addr# -> Addr# -> Int# Source
leChar# :: Char# -> Char# -> Int# Source
leFloat# :: Float# -> Float# -> Int# Source
leInt16# :: Int16# -> Int16# -> Int# Source
leInt32# :: Int32# -> Int32# -> Int# Source
leInt64# :: Int64# -> Int64# -> Int# Source
leInt8# :: Int8# -> Int8# -> Int# Source
leWord# :: Word# -> Word# -> Int# Source
leWord16# :: Word16# -> Word16# -> Int# Source
leWord32# :: Word32# -> Word32# -> Int# Source
leWord64# :: Word64# -> Word64# -> Int# Source
leWord8# :: Word8# -> Word8# -> Int# Source
leftSection :: forall {n :: Multiplicity} a b. (a %n -> b) -> a %n -> b Source
listThreads# :: State# RealWorld -> (# State# RealWorld, Array# ThreadId# #) Source
Returns an array of the threads started by the program. Note that this threads which have finished execution may or may not be present in this list, depending upon whether they have been collected by the garbage collector.
Since: ghc-prim-0.10
log1pDouble# :: Double# -> Double# Source
log1pFloat# :: Float# -> Float# Source
logDouble# :: Double# -> Double# Source
logFloat# :: Float# -> Float# Source
ltAddr# :: Addr# -> Addr# -> Int# Source
ltChar# :: Char# -> Char# -> Int# Source
ltFloat# :: Float# -> Float# -> Int# Source
ltInt16# :: Int16# -> Int16# -> Int# Source
ltInt32# :: Int32# -> Int32# -> Int# Source
ltInt64# :: Int64# -> Int64# -> Int# Source
ltInt8# :: Int8# -> Int8# -> Int# Source
ltWord# :: Word# -> Word# -> Int# Source
ltWord16# :: Word16# -> Word16# -> Int# Source
ltWord32# :: Word32# -> Word32# -> Int# Source
ltWord64# :: Word64# -> Word64# -> Int# Source
ltWord8# :: Word8# -> Word8# -> Int# Source
makeStableName# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)). a -> State# RealWorld -> (# State# RealWorld, StableName# a #) Source
makeStablePtr# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)). a -> State# RealWorld -> (# State# RealWorld, StablePtr# a #) Source
maskAsyncExceptions# :: (State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> (# State# RealWorld, a #) Source
maskAsyncExceptions# k s evaluates k s such that asynchronous exceptions are deferred until after evaluation has finished.
Note that the result type here isn't quite as unrestricted as the polymorphic type might suggest; see the section "RuntimeRep polymorphism in continuation-style primops" for details.
maskUninterruptible# :: (State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> (# State# RealWorld, a #) Source
maskUninterruptible# k s evaluates k s such that asynchronous exceptions are deferred until after evaluation has finished.
Note that the result type here isn't quite as unrestricted as the polymorphic type might suggest; see the section "RuntimeRep polymorphism in continuation-style primops" for details.
minusAddr# :: Addr# -> Addr# -> Int# Source
Result is meaningless if two Addr#s are so far apart that their difference doesn't fit in an Int#.
minusDoubleX2# :: DoubleX2# -> DoubleX2# -> DoubleX2# Source
Subtract two vectors element-wise.
minusDoubleX4# :: DoubleX4# -> DoubleX4# -> DoubleX4# Source
Subtract two vectors element-wise.
minusDoubleX8# :: DoubleX8# -> DoubleX8# -> DoubleX8# Source
Subtract two vectors element-wise.
minusFloat# :: Float# -> Float# -> Float# Source
minusFloatX16# :: FloatX16# -> FloatX16# -> FloatX16# Source
Subtract two vectors element-wise.
minusFloatX4# :: FloatX4# -> FloatX4# -> FloatX4# Source
Subtract two vectors element-wise.
minusFloatX8# :: FloatX8# -> FloatX8# -> FloatX8# Source
Subtract two vectors element-wise.
minusInt16X16# :: Int16X16# -> Int16X16# -> Int16X16# Source
Subtract two vectors element-wise.
minusInt16X32# :: Int16X32# -> Int16X32# -> Int16X32# Source
Subtract two vectors element-wise.
minusInt16X8# :: Int16X8# -> Int16X8# -> Int16X8# Source
Subtract two vectors element-wise.
minusInt32X16# :: Int32X16# -> Int32X16# -> Int32X16# Source
Subtract two vectors element-wise.
minusInt32X4# :: Int32X4# -> Int32X4# -> Int32X4# Source
Subtract two vectors element-wise.
minusInt32X8# :: Int32X8# -> Int32X8# -> Int32X8# Source
Subtract two vectors element-wise.
minusInt64X2# :: Int64X2# -> Int64X2# -> Int64X2# Source
Subtract two vectors element-wise.
minusInt64X4# :: Int64X4# -> Int64X4# -> Int64X4# Source
Subtract two vectors element-wise.
minusInt64X8# :: Int64X8# -> Int64X8# -> Int64X8# Source
Subtract two vectors element-wise.
minusInt8X16# :: Int8X16# -> Int8X16# -> Int8X16# Source
Subtract two vectors element-wise.
minusInt8X32# :: Int8X32# -> Int8X32# -> Int8X32# Source
Subtract two vectors element-wise.
minusInt8X64# :: Int8X64# -> Int8X64# -> Int8X64# Source
Subtract two vectors element-wise.
minusWord# :: Word# -> Word# -> Word# Source
minusWord16X16# :: Word16X16# -> Word16X16# -> Word16X16# Source
Subtract two vectors element-wise.
minusWord16X32# :: Word16X32# -> Word16X32# -> Word16X32# Source
Subtract two vectors element-wise.
minusWord16X8# :: Word16X8# -> Word16X8# -> Word16X8# Source
Subtract two vectors element-wise.
minusWord32X16# :: Word32X16# -> Word32X16# -> Word32X16# Source
Subtract two vectors element-wise.
minusWord32X4# :: Word32X4# -> Word32X4# -> Word32X4# Source
Subtract two vectors element-wise.
minusWord32X8# :: Word32X8# -> Word32X8# -> Word32X8# Source
Subtract two vectors element-wise.
minusWord64X2# :: Word64X2# -> Word64X2# -> Word64X2# Source
Subtract two vectors element-wise.
minusWord64X4# :: Word64X4# -> Word64X4# -> Word64X4# Source
Subtract two vectors element-wise.
minusWord64X8# :: Word64X8# -> Word64X8# -> Word64X8# Source
Subtract two vectors element-wise.
minusWord8X16# :: Word8X16# -> Word8X16# -> Word8X16# Source
Subtract two vectors element-wise.
minusWord8X32# :: Word8X32# -> Word8X32# -> Word8X32# Source
Subtract two vectors element-wise.
minusWord8X64# :: Word8X64# -> Word8X64# -> Word8X64# Source
Subtract two vectors element-wise.
mkWeak# :: forall {l :: Levity} {k :: Levity} (a :: TYPE ('BoxedRep l)) (b :: TYPE ('BoxedRep k)) c. a -> b -> (State# RealWorld -> (# State# RealWorld, c #)) -> State# RealWorld -> (# State# RealWorld, Weak# b #) Source
mkWeak# k v finalizer s creates a weak reference to value k, with an associated reference to some value v. If k is still alive then v can be retrieved using deRefWeak#. Note that the type of k must be represented by a pointer (i.e. of kind TYPE 'LiftedRep or TYPE 'UnliftedRep@).
mkWeakNoFinalizer# :: forall {l :: Levity} {k :: Levity} (a :: TYPE ('BoxedRep l)) (b :: TYPE ('BoxedRep k)). a -> b -> State# RealWorld -> (# State# RealWorld, Weak# b #) Source
mulIntMayOflo# :: Int# -> Int# -> Int# Source
Return non-zero if there is any possibility that the upper word of a signed integer multiply might contain useful information. Return zero only if you are completely sure that no overflow can occur. On a 32-bit platform, the recommended implementation is to do a 32 x 32 -> 64 signed multiply, and subtract result[63:32] from (result[31] >>signed 31). If this is zero, meaning that the upper word is merely a sign extension of the lower one, no overflow can occur.
On a 64-bit platform it is not always possible to acquire the top 64 bits of the result. Therefore, a recommended implementation is to take the absolute value of both operands, and return 0 iff bits[63:31] of them are zero, since that means that their magnitudes fit within 31 bits, so the magnitude of the product must fit into 62 bits.
If in doubt, return non-zero, but do make an effort to create the correct answer for small args, since otherwise the performance of (*) :: Integer -> Integer -> Integer will be poor.
mutableByteArrayContents# :: MutableByteArray# d -> Addr# Source
Intended for use with pinned arrays; otherwise very unsafe!
myThreadId# :: State# RealWorld -> (# State# RealWorld, ThreadId# #) Source
narrow16Int# :: Int# -> Int# Source
narrow16Word# :: Word# -> Word# Source
narrow32Int# :: Int# -> Int# Source
narrow32Word# :: Word# -> Word# Source
narrow8Int# :: Int# -> Int# Source
narrow8Word# :: Word# -> Word# Source
neAddr# :: Addr# -> Addr# -> Int# Source
neChar# :: Char# -> Char# -> Int# Source
neFloat# :: Float# -> Float# -> Int# Source
neInt16# :: Int16# -> Int16# -> Int# Source
neInt32# :: Int32# -> Int32# -> Int# Source
neInt64# :: Int64# -> Int64# -> Int# Source
neInt8# :: Int8# -> Int8# -> Int# Source
neWord# :: Word# -> Word# -> Int# Source
neWord16# :: Word16# -> Word16# -> Int# Source
neWord32# :: Word32# -> Word32# -> Int# Source
neWord64# :: Word64# -> Word64# -> Int# Source
neWord8# :: Word8# -> Word8# -> Int# Source
negateDouble# :: Double# -> Double# Source
negateDoubleX2# :: DoubleX2# -> DoubleX2# Source
Negate element-wise.
negateDoubleX4# :: DoubleX4# -> DoubleX4# Source
Negate element-wise.
negateDoubleX8# :: DoubleX8# -> DoubleX8# Source
Negate element-wise.
negateFloat# :: Float# -> Float# Source
negateFloatX16# :: FloatX16# -> FloatX16# Source
Negate element-wise.
negateFloatX4# :: FloatX4# -> FloatX4# Source
Negate element-wise.
negateFloatX8# :: FloatX8# -> FloatX8# Source
Negate element-wise.
negateInt# :: Int# -> Int# Source
Unary negation. Since the negative Int# range extends one further than the positive range, negateInt# of the most negative number is an identity operation. This way, negateInt# is always its own inverse.
negateInt16# :: Int16# -> Int16# Source
negateInt16X16# :: Int16X16# -> Int16X16# Source
Negate element-wise.
negateInt16X32# :: Int16X32# -> Int16X32# Source
Negate element-wise.
negateInt16X8# :: Int16X8# -> Int16X8# Source
Negate element-wise.
negateInt32# :: Int32# -> Int32# Source
negateInt32X16# :: Int32X16# -> Int32X16# Source
Negate element-wise.
negateInt32X4# :: Int32X4# -> Int32X4# Source
Negate element-wise.
negateInt32X8# :: Int32X8# -> Int32X8# Source
Negate element-wise.
negateInt64# :: Int64# -> Int64# Source
negateInt64X2# :: Int64X2# -> Int64X2# Source
Negate element-wise.
negateInt64X4# :: Int64X4# -> Int64X4# Source
Negate element-wise.
negateInt64X8# :: Int64X8# -> Int64X8# Source
Negate element-wise.
negateInt8# :: Int8# -> Int8# Source
negateInt8X16# :: Int8X16# -> Int8X16# Source
Negate element-wise.
negateInt8X32# :: Int8X32# -> Int8X32# Source
Negate element-wise.
negateInt8X64# :: Int8X64# -> Int8X64# Source
Negate element-wise.
newAlignedPinnedByteArray# :: Int# -> Int# -> State# d -> (# State# d, MutableByteArray# d #) Source
Like newPinnedByteArray# but allow specifying an arbitrary alignment, which must be a power of two.
Warning: this can fail with an unchecked exception.
newArray# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)) d. Int# -> a -> State# d -> (# State# d, MutableArray# d a #) Source
Create a new mutable array with the specified number of elements, in the specified state thread, with each element containing the specified initial value.
newByteArray# :: Int# -> State# d -> (# State# d, MutableByteArray# d #) Source
Create a new mutable byte array of specified size (in bytes), in the specified state thread. The size of the memory underlying the array will be rounded up to the platform's word size.
newIOPort# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). State# d -> (# State# d, IOPort# d a #) Source
Create new IOPort#; initially empty.
newMVar# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). State# d -> (# State# d, MVar# d a #) Source
Create new MVar#; initially empty.
newMutVar# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)) d. a -> State# d -> (# State# d, MutVar# d a #) Source
Create MutVar# with specified initial value in specified state thread.
newPinnedByteArray# :: Int# -> State# d -> (# State# d, MutableByteArray# d #) Source
Like newByteArray# but GC guarantees not to move it.
newPromptTag# :: State# RealWorld -> (# State# RealWorld, PromptTag# a #) Source
See GHC.Prim.
newSmallArray# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)) d. Int# -> a -> State# d -> (# State# d, SmallMutableArray# d a #) Source
Create a new mutable array with the specified number of elements, in the specified state thread, with each element containing the specified initial value.
newTVar# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)) d. a -> State# d -> (# State# d, TVar# d a #) Source
Create a new TVar# holding a specified initial value.
noDuplicate# :: State# d -> State# d Source
not64# :: Word64# -> Word64# Source
Bitwise "not", also known as the binary complement.
notWord16# :: Word16# -> Word16# Source
notWord32# :: Word32# -> Word32# Source
notWord8# :: Word8# -> Word8# Source
The null address.
numSparks# :: State# d -> (# State# d, Int# #) Source
Returns the number of sparks in the local spark pool.
or# :: Word# -> Word# -> Word# Source
or64# :: Word64# -> Word64# -> Word64# Source
orI# :: Int# -> Int# -> Int# Source
Bitwise "or".
orWord16# :: Word16# -> Word16# -> Word16# Source
orWord32# :: Word32# -> Word32# -> Word32# Source
orWord8# :: Word8# -> Word8# -> Word8# Source
packDoubleX2# :: (# Double#, Double# #) -> DoubleX2# Source
Pack the elements of an unboxed tuple into a vector.
packDoubleX4# :: (# Double#, Double#, Double#, Double# #) -> DoubleX4# Source
Pack the elements of an unboxed tuple into a vector.
packDoubleX8# :: (# Double#, Double#, Double#, Double#, Double#, Double#, Double#, Double# #) -> DoubleX8# Source
Pack the elements of an unboxed tuple into a vector.
packFloatX16# :: (# Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float# #) -> FloatX16# Source
Pack the elements of an unboxed tuple into a vector.
packFloatX4# :: (# Float#, Float#, Float#, Float# #) -> FloatX4# Source
Pack the elements of an unboxed tuple into a vector.
packFloatX8# :: (# Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float# #) -> FloatX8# Source
Pack the elements of an unboxed tuple into a vector.
packInt16X16# :: (# Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16# #) -> Int16X16# Source
Pack the elements of an unboxed tuple into a vector.
packInt16X32# :: (# Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16# #) -> Int16X32# Source
Pack the elements of an unboxed tuple into a vector.
packInt16X8# :: (# Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16# #) -> Int16X8# Source
Pack the elements of an unboxed tuple into a vector.
packInt32X16# :: (# Int32#, Int32#, Int32#, Int32#, Int32#, Int32#, Int32#, Int32#, Int32#, Int32#, Int32#, Int32#, Int32#, Int32#, Int32#, Int32# #) -> Int32X16# Source
Pack the elements of an unboxed tuple into a vector.
packInt32X4# :: (# Int32#, Int32#, Int32#, Int32# #) -> Int32X4# Source
Pack the elements of an unboxed tuple into a vector.
packInt32X8# :: (# Int32#, Int32#, Int32#, Int32#, Int32#, Int32#, Int32#, Int32# #) -> Int32X8# Source
Pack the elements of an unboxed tuple into a vector.
packInt64X2# :: (# Int64#, Int64# #) -> Int64X2# Source
Pack the elements of an unboxed tuple into a vector.
packInt64X4# :: (# Int64#, Int64#, Int64#, Int64# #) -> Int64X4# Source
Pack the elements of an unboxed tuple into a vector.
packInt64X8# :: (# Int64#, Int64#, Int64#, Int64#, Int64#, Int64#, Int64#, Int64# #) -> Int64X8# Source
Pack the elements of an unboxed tuple into a vector.
packInt8X16# :: (# Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8# #) -> Int8X16# Source
Pack the elements of an unboxed tuple into a vector.
packInt8X32# :: (# Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8# #) -> Int8X32# Source
Pack the elements of an unboxed tuple into a vector.
packInt8X64# :: (# Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8# #) -> Int8X64# Source
Pack the elements of an unboxed tuple into a vector.
packWord16X16# :: (# Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16# #) -> Word16X16# Source
Pack the elements of an unboxed tuple into a vector.
packWord16X32# :: (# Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16# #) -> Word16X32# Source
Pack the elements of an unboxed tuple into a vector.
packWord16X8# :: (# Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16# #) -> Word16X8# Source
Pack the elements of an unboxed tuple into a vector.
packWord32X16# :: (# Word32#, Word32#, Word32#, Word32#, Word32#, Word32#, Word32#, Word32#, Word32#, Word32#, Word32#, Word32#, Word32#, Word32#, Word32#, Word32# #) -> Word32X16# Source
Pack the elements of an unboxed tuple into a vector.
packWord32X4# :: (# Word32#, Word32#, Word32#, Word32# #) -> Word32X4# Source
Pack the elements of an unboxed tuple into a vector.
packWord32X8# :: (# Word32#, Word32#, Word32#, Word32#, Word32#, Word32#, Word32#, Word32# #) -> Word32X8# Source
Pack the elements of an unboxed tuple into a vector.
packWord64X2# :: (# Word64#, Word64# #) -> Word64X2# Source
Pack the elements of an unboxed tuple into a vector.
packWord64X4# :: (# Word64#, Word64#, Word64#, Word64# #) -> Word64X4# Source
Pack the elements of an unboxed tuple into a vector.
packWord64X8# :: (# Word64#, Word64#, Word64#, Word64#, Word64#, Word64#, Word64#, Word64# #) -> Word64X8# Source
Pack the elements of an unboxed tuple into a vector.
packWord8X16# :: (# Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8# #) -> Word8X16# Source
Pack the elements of an unboxed tuple into a vector.
packWord8X32# :: (# Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8# #) -> Word8X32# Source
Pack the elements of an unboxed tuple into a vector.
packWord8X64# :: (# Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8# #) -> Word8X64# Source
Pack the elements of an unboxed tuple into a vector.
Create a new spark evaluating the given argument. The return value should always be 1. Users are encouraged to use spark# instead.
pdep# :: Word# -> Word# -> Word# Source
Deposit bits to a word at locations specified by a mask, aka parallel bit deposit.
Software emulation:
pdep :: Word -> Word -> Word
pdep src mask = go 0 src mask
where
go :: Word -> Word -> Word -> Word
go result _ 0 = result
go result src mask = go newResult newSrc newMask
where
maskCtz = countTrailingZeros mask
newResult = if testBit src 0 then setBit result maskCtz else result
newSrc = src `shiftR` 1
newMask = clearBit mask maskCtz
Since: ghc-prim-0.5.2.0
pdep16# :: Word# -> Word# -> Word# Source
Deposit bits to lower 16 bits of a word at locations specified by a mask.
Since: ghc-prim-0.5.2.0
pdep32# :: Word# -> Word# -> Word# Source
Deposit bits to lower 32 bits of a word at locations specified by a mask.
Since: ghc-prim-0.5.2.0
pdep64# :: Word64# -> Word64# -> Word64# Source
Deposit bits to a word at locations specified by a mask.
Since: ghc-prim-0.5.2.0
pdep8# :: Word# -> Word# -> Word# Source
Deposit bits to lower 8 bits of a word at locations specified by a mask.
Since: ghc-prim-0.5.2.0
pext# :: Word# -> Word# -> Word# Source
Extract bits from a word at locations specified by a mask, aka parallel bit extract.
Software emulation:
pext :: Word -> Word -> Word
pext src mask = loop 0 0 0
where
loop i count result
| i >= finiteBitSize (0 :: Word)
= result
| testBit mask i
= loop (i + 1) (count + 1) (if testBit src i then setBit result count else result)
| otherwise
= loop (i + 1) count result
Since: ghc-prim-0.5.2.0
pext16# :: Word# -> Word# -> Word# Source
Extract bits from lower 16 bits of a word at locations specified by a mask.
Since: ghc-prim-0.5.2.0
pext32# :: Word# -> Word# -> Word# Source
Extract bits from lower 32 bits of a word at locations specified by a mask.
Since: ghc-prim-0.5.2.0
pext64# :: Word64# -> Word64# -> Word64# Source
Extract bits from a word at locations specified by a mask.
Since: ghc-prim-0.5.2.0
pext8# :: Word# -> Word# -> Word# Source
Extract bits from lower 8 bits of a word at locations specified by a mask.
Since: ghc-prim-0.5.2.0
plusAddr# :: Addr# -> Int# -> Addr# Source
plusDoubleX2# :: DoubleX2# -> DoubleX2# -> DoubleX2# Source
Add two vectors element-wise.
plusDoubleX4# :: DoubleX4# -> DoubleX4# -> DoubleX4# Source
Add two vectors element-wise.
plusDoubleX8# :: DoubleX8# -> DoubleX8# -> DoubleX8# Source
Add two vectors element-wise.
plusFloat# :: Float# -> Float# -> Float# Source
plusFloatX16# :: FloatX16# -> FloatX16# -> FloatX16# Source
Add two vectors element-wise.
plusFloatX4# :: FloatX4# -> FloatX4# -> FloatX4# Source
Add two vectors element-wise.
plusFloatX8# :: FloatX8# -> FloatX8# -> FloatX8# Source
Add two vectors element-wise.
plusInt16# :: Int16# -> Int16# -> Int16# Source
plusInt16X16# :: Int16X16# -> Int16X16# -> Int16X16# Source
Add two vectors element-wise.
plusInt16X32# :: Int16X32# -> Int16X32# -> Int16X32# Source
Add two vectors element-wise.
plusInt16X8# :: Int16X8# -> Int16X8# -> Int16X8# Source
Add two vectors element-wise.
plusInt32# :: Int32# -> Int32# -> Int32# Source
plusInt32X16# :: Int32X16# -> Int32X16# -> Int32X16# Source
Add two vectors element-wise.
plusInt32X4# :: Int32X4# -> Int32X4# -> Int32X4# Source
Add two vectors element-wise.
plusInt32X8# :: Int32X8# -> Int32X8# -> Int32X8# Source
Add two vectors element-wise.
plusInt64# :: Int64# -> Int64# -> Int64# Source
plusInt64X2# :: Int64X2# -> Int64X2# -> Int64X2# Source
Add two vectors element-wise.
plusInt64X4# :: Int64X4# -> Int64X4# -> Int64X4# Source
Add two vectors element-wise.
plusInt64X8# :: Int64X8# -> Int64X8# -> Int64X8# Source
Add two vectors element-wise.
plusInt8# :: Int8# -> Int8# -> Int8# Source
plusInt8X16# :: Int8X16# -> Int8X16# -> Int8X16# Source
Add two vectors element-wise.
plusInt8X32# :: Int8X32# -> Int8X32# -> Int8X32# Source
Add two vectors element-wise.
plusInt8X64# :: Int8X64# -> Int8X64# -> Int8X64# Source
Add two vectors element-wise.
plusWord# :: Word# -> Word# -> Word# Source
plusWord16# :: Word16# -> Word16# -> Word16# Source
plusWord16X16# :: Word16X16# -> Word16X16# -> Word16X16# Source
Add two vectors element-wise.
plusWord16X32# :: Word16X32# -> Word16X32# -> Word16X32# Source
Add two vectors element-wise.
plusWord16X8# :: Word16X8# -> Word16X8# -> Word16X8# Source
Add two vectors element-wise.
plusWord2# :: Word# -> Word# -> (# Word#, Word# #) Source
Add unsigned integers, with the high part (carry) in the first component of the returned pair and the low part in the second component of the pair. See also addWordC#.
plusWord32# :: Word32# -> Word32# -> Word32# Source
plusWord32X16# :: Word32X16# -> Word32X16# -> Word32X16# Source
Add two vectors element-wise.
plusWord32X4# :: Word32X4# -> Word32X4# -> Word32X4# Source
Add two vectors element-wise.
plusWord32X8# :: Word32X8# -> Word32X8# -> Word32X8# Source
Add two vectors element-wise.
plusWord64# :: Word64# -> Word64# -> Word64# Source
plusWord64X2# :: Word64X2# -> Word64X2# -> Word64X2# Source
Add two vectors element-wise.
plusWord64X4# :: Word64X4# -> Word64X4# -> Word64X4# Source
Add two vectors element-wise.
plusWord64X8# :: Word64X8# -> Word64X8# -> Word64X8# Source
Add two vectors element-wise.
plusWord8# :: Word8# -> Word8# -> Word8# Source
plusWord8X16# :: Word8X16# -> Word8X16# -> Word8X16# Source
Add two vectors element-wise.
plusWord8X32# :: Word8X32# -> Word8X32# -> Word8X32# Source
Add two vectors element-wise.
plusWord8X64# :: Word8X64# -> Word8X64# -> Word8X64# Source
Add two vectors element-wise.
popCnt# :: Word# -> Word# Source
Count the number of set bits in a word.
popCnt16# :: Word# -> Word# Source
Count the number of set bits in the lower 16 bits of a word.
popCnt32# :: Word# -> Word# Source
Count the number of set bits in the lower 32 bits of a word.
popCnt64# :: Word64# -> Word# Source
Count the number of set bits in a 64-bit word.
popCnt8# :: Word# -> Word# Source
Count the number of set bits in the lower 8 bits of a word.
powerFloat# :: Float# -> Float# -> Float# Source
prefetchAddr0# :: Addr# -> Int# -> State# d -> State# d Source
prefetchAddr1# :: Addr# -> Int# -> State# d -> State# d Source
prefetchAddr2# :: Addr# -> Int# -> State# d -> State# d Source
prefetchAddr3# :: Addr# -> Int# -> State# d -> State# d Source
prefetchByteArray0# :: ByteArray# -> Int# -> State# d -> State# d Source
prefetchByteArray1# :: ByteArray# -> Int# -> State# d -> State# d Source
prefetchByteArray2# :: ByteArray# -> Int# -> State# d -> State# d Source
prefetchByteArray3# :: ByteArray# -> Int# -> State# d -> State# d Source
prefetchMutableByteArray0# :: MutableByteArray# d -> Int# -> State# d -> State# d Source
prefetchMutableByteArray1# :: MutableByteArray# d -> Int# -> State# d -> State# d Source
prefetchMutableByteArray2# :: MutableByteArray# d -> Int# -> State# d -> State# d Source
prefetchMutableByteArray3# :: MutableByteArray# d -> Int# -> State# d -> State# d Source
prefetchValue0# :: a -> State# d -> State# d Source
prefetchValue1# :: a -> State# d -> State# d Source
prefetchValue2# :: a -> State# d -> State# d Source
prefetchValue3# :: a -> State# d -> State# d Source
prompt# :: PromptTag# a -> (State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> (# State# RealWorld, a #) Source
See GHC.Prim.
proxy# :: forall {k} (a :: k). Proxy# a Source
Witness for an unboxed Proxy# value, which has no runtime representation.
putMVar# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). MVar# d a -> a -> State# d -> State# d Source
If MVar# is full, block until it becomes empty. Then store value arg as its new contents.
quotInt# :: Int# -> Int# -> Int# Source
Rounds towards zero. The behavior is undefined if the second argument is zero.
quotInt16# :: Int16# -> Int16# -> Int16# Source
quotInt16X16# :: Int16X16# -> Int16X16# -> Int16X16# Source
Rounds towards zero element-wise.
quotInt16X32# :: Int16X32# -> Int16X32# -> Int16X32# Source
Rounds towards zero element-wise.
quotInt16X8# :: Int16X8# -> Int16X8# -> Int16X8# Source
Rounds towards zero element-wise.
quotInt32# :: Int32# -> Int32# -> Int32# Source
quotInt32X16# :: Int32X16# -> Int32X16# -> Int32X16# Source
Rounds towards zero element-wise.
quotInt32X4# :: Int32X4# -> Int32X4# -> Int32X4# Source
Rounds towards zero element-wise.
quotInt32X8# :: Int32X8# -> Int32X8# -> Int32X8# Source
Rounds towards zero element-wise.
quotInt64# :: Int64# -> Int64# -> Int64# Source
quotInt64X2# :: Int64X2# -> Int64X2# -> Int64X2# Source
Rounds towards zero element-wise.
quotInt64X4# :: Int64X4# -> Int64X4# -> Int64X4# Source
Rounds towards zero element-wise.
quotInt64X8# :: Int64X8# -> Int64X8# -> Int64X8# Source
Rounds towards zero element-wise.
quotInt8# :: Int8# -> Int8# -> Int8# Source
quotInt8X16# :: Int8X16# -> Int8X16# -> Int8X16# Source
Rounds towards zero element-wise.
quotInt8X32# :: Int8X32# -> Int8X32# -> Int8X32# Source
Rounds towards zero element-wise.
quotInt8X64# :: Int8X64# -> Int8X64# -> Int8X64# Source
Rounds towards zero element-wise.
quotRemInt# :: Int# -> Int# -> (# Int#, Int# #) Source
Rounds towards zero.
quotRemInt16# :: Int16# -> Int16# -> (# Int16#, Int16# #) Source
quotRemInt32# :: Int32# -> Int32# -> (# Int32#, Int32# #) Source
quotRemInt8# :: Int8# -> Int8# -> (# Int8#, Int8# #) Source
quotRemWord# :: Word# -> Word# -> (# Word#, Word# #) Source
quotRemWord16# :: Word16# -> Word16# -> (# Word16#, Word16# #) Source
quotRemWord2# :: Word# -> Word# -> Word# -> (# Word#, Word# #) Source
Takes high word of dividend, then low word of dividend, then divisor. Requires that high word < divisor.
quotRemWord32# :: Word32# -> Word32# -> (# Word32#, Word32# #) Source
quotRemWord8# :: Word8# -> Word8# -> (# Word8#, Word8# #) Source
quotWord# :: Word# -> Word# -> Word# Source
quotWord16# :: Word16# -> Word16# -> Word16# Source
quotWord16X16# :: Word16X16# -> Word16X16# -> Word16X16# Source
Rounds towards zero element-wise.
quotWord16X32# :: Word16X32# -> Word16X32# -> Word16X32# Source
Rounds towards zero element-wise.
quotWord16X8# :: Word16X8# -> Word16X8# -> Word16X8# Source
Rounds towards zero element-wise.
quotWord32# :: Word32# -> Word32# -> Word32# Source
quotWord32X16# :: Word32X16# -> Word32X16# -> Word32X16# Source
Rounds towards zero element-wise.
quotWord32X4# :: Word32X4# -> Word32X4# -> Word32X4# Source
Rounds towards zero element-wise.
quotWord32X8# :: Word32X8# -> Word32X8# -> Word32X8# Source
Rounds towards zero element-wise.
quotWord64# :: Word64# -> Word64# -> Word64# Source
quotWord64X2# :: Word64X2# -> Word64X2# -> Word64X2# Source
Rounds towards zero element-wise.
quotWord64X4# :: Word64X4# -> Word64X4# -> Word64X4# Source
Rounds towards zero element-wise.
quotWord64X8# :: Word64X8# -> Word64X8# -> Word64X8# Source
Rounds towards zero element-wise.
quotWord8# :: Word8# -> Word8# -> Word8# Source
quotWord8X16# :: Word8X16# -> Word8X16# -> Word8X16# Source
Rounds towards zero element-wise.
quotWord8X32# :: Word8X32# -> Word8X32# -> Word8X32# Source
Rounds towards zero element-wise.
quotWord8X64# :: Word8X64# -> Word8X64# -> Word8X64# Source
Rounds towards zero element-wise.
raise# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)) b. a -> b Source
raiseDivZero# :: (# #) -> b Source
raiseIO# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)) b. a -> State# RealWorld -> (# State# RealWorld, b #) Source
raiseOverflow# :: (# #) -> b Source
raiseUnderflow# :: (# #) -> b Source
readAddrArray# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Addr# #) Source
Read a machine address from mutable array; offset in machine words.
Warning: this can fail with an unchecked exception.
readAddrOffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Addr# #) Source
Read a machine address from mutable address; offset in machine words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
Warning: this can fail with an unchecked exception.
readArray# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). MutableArray# d a -> Int# -> State# d -> (# State# d, a #) Source
Read from specified index of mutable array. Result is not yet evaluated.
Warning: this can fail with an unchecked exception.
readCharArray# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Char# #) Source
Read an 8-bit character from mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
readCharOffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Char# #) Source
Read an 8-bit character from mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
readDoubleArray# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Double# #) Source
Read a double-precision floating-point value from mutable array; offset in 8-byte words.
Warning: this can fail with an unchecked exception.
readDoubleArrayAsDoubleX2# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, DoubleX2# #) Source
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
readDoubleArrayAsDoubleX4# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, DoubleX4# #) Source
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
readDoubleArrayAsDoubleX8# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, DoubleX8# #) Source
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
readDoubleOffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Double# #) Source
Read a double-precision floating-point value from mutable address; offset in 8-byte words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
Warning: this can fail with an unchecked exception.
readDoubleOffAddrAsDoubleX2# :: Addr# -> Int# -> State# d -> (# State# d, DoubleX2# #) Source
Reads vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
readDoubleOffAddrAsDoubleX4# :: Addr# -> Int# -> State# d -> (# State# d, DoubleX4# #) Source
Reads vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
readDoubleOffAddrAsDoubleX8# :: Addr# -> Int# -> State# d -> (# State# d, DoubleX8# #) Source
Reads vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
readDoubleX2Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, DoubleX2# #) Source
Read a vector from specified index of mutable array.
Warning: this can fail with an unchecked exception.
readDoubleX2OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, DoubleX2# #) Source
Reads vector; offset in bytes.
Warning: this can fail with an unchecked exception.
readDoubleX4Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, DoubleX4# #) Source
Read a vector from specified index of mutable array.
Warning: this can fail with an unchecked exception.
readDoubleX4OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, DoubleX4# #) Source
Reads vector; offset in bytes.
Warning: this can fail with an unchecked exception.
readDoubleX8Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, DoubleX8# #) Source
Read a vector from specified index of mutable array.
Warning: this can fail with an unchecked exception.
readDoubleX8OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, DoubleX8# #) Source
Reads vector; offset in bytes.
Warning: this can fail with an unchecked exception.
readFloatArray# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Float# #) Source
Read a single-precision floating-point value from mutable array; offset in 4-byte words.
Warning: this can fail with an unchecked exception.
readFloatArrayAsFloatX16# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, FloatX16# #) Source
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
readFloatArrayAsFloatX4# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, FloatX4# #) Source
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
readFloatArrayAsFloatX8# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, FloatX8# #) Source
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
readFloatOffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Float# #) Source
Read a single-precision floating-point value from mutable address; offset in 4-byte words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
Warning: this can fail with an unchecked exception.
readFloatOffAddrAsFloatX16# :: Addr# -> Int# -> State# d -> (# State# d, FloatX16# #) Source
Reads vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
readFloatOffAddrAsFloatX4# :: Addr# -> Int# -> State# d -> (# State# d, FloatX4# #) Source
Reads vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
readFloatOffAddrAsFloatX8# :: Addr# -> Int# -> State# d -> (# State# d, FloatX8# #) Source
Reads vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
readFloatX16Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, FloatX16# #) Source
Read a vector from specified index of mutable array.
Warning: this can fail with an unchecked exception.
readFloatX16OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, FloatX16# #) Source
Reads vector; offset in bytes.
Warning: this can fail with an unchecked exception.
readFloatX4Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, FloatX4# #) Source
Read a vector from specified index of mutable array.
Warning: this can fail with an unchecked exception.
readFloatX4OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, FloatX4# #) Source
Reads vector; offset in bytes.
Warning: this can fail with an unchecked exception.
readFloatX8Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, FloatX8# #) Source
Read a vector from specified index of mutable array.
Warning: this can fail with an unchecked exception.
readFloatX8OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, FloatX8# #) Source
Reads vector; offset in bytes.
Warning: this can fail with an unchecked exception.
readIOPort# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). IOPort# d a -> State# d -> (# State# d, a #) Source
If IOPort# is empty, block until it becomes full. Then remove and return its contents, and set it empty. Throws an IOPortException if another thread is already waiting to read this IOPort#.
readInt16Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int16# #) Source
Read a 16-bit signed integer from mutable array; offset in 2-byte words.
Warning: this can fail with an unchecked exception.
readInt16ArrayAsInt16X16# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int16X16# #) Source
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
readInt16ArrayAsInt16X32# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int16X32# #) Source
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
readInt16ArrayAsInt16X8# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int16X8# #) Source
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
readInt16OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int16# #) Source
Read a 16-bit signed integer from mutable address; offset in 2-byte words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
Warning: this can fail with an unchecked exception.
readInt16OffAddrAsInt16X16# :: Addr# -> Int# -> State# d -> (# State# d, Int16X16# #) Source
Reads vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
readInt16OffAddrAsInt16X32# :: Addr# -> Int# -> State# d -> (# State# d, Int16X32# #) Source
Reads vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
readInt16OffAddrAsInt16X8# :: Addr# -> Int# -> State# d -> (# State# d, Int16X8# #) Source
Reads vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
readInt16X16Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int16X16# #) Source
Read a vector from specified index of mutable array.
Warning: this can fail with an unchecked exception.
readInt16X16OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int16X16# #) Source
Reads vector; offset in bytes.
Warning: this can fail with an unchecked exception.
readInt16X32Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int16X32# #) Source
Read a vector from specified index of mutable array.
Warning: this can fail with an unchecked exception.
readInt16X32OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int16X32# #) Source
Reads vector; offset in bytes.
Warning: this can fail with an unchecked exception.
readInt16X8Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int16X8# #) Source
Read a vector from specified index of mutable array.
Warning: this can fail with an unchecked exception.
readInt16X8OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int16X8# #) Source
Reads vector; offset in bytes.
Warning: this can fail with an unchecked exception.
readInt32Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int32# #) Source
Read a 32-bit signed integer from mutable array; offset in 4-byte words.
Warning: this can fail with an unchecked exception.
readInt32ArrayAsInt32X16# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int32X16# #) Source
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
readInt32ArrayAsInt32X4# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int32X4# #) Source
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
readInt32ArrayAsInt32X8# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int32X8# #) Source
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
readInt32OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int32# #) Source
Read a 32-bit signed integer from mutable address; offset in 4-byte words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
Warning: this can fail with an unchecked exception.
readInt32OffAddrAsInt32X16# :: Addr# -> Int# -> State# d -> (# State# d, Int32X16# #) Source
Reads vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
readInt32OffAddrAsInt32X4# :: Addr# -> Int# -> State# d -> (# State# d, Int32X4# #) Source
Reads vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
readInt32OffAddrAsInt32X8# :: Addr# -> Int# -> State# d -> (# State# d, Int32X8# #) Source
Reads vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
readInt32X16Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int32X16# #) Source
Read a vector from specified index of mutable array.
Warning: this can fail with an unchecked exception.
readInt32X16OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int32X16# #) Source
Reads vector; offset in bytes.
Warning: this can fail with an unchecked exception.
readInt32X4Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int32X4# #) Source
Read a vector from specified index of mutable array.
Warning: this can fail with an unchecked exception.
readInt32X4OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int32X4# #) Source
Reads vector; offset in bytes.
Warning: this can fail with an unchecked exception.
readInt32X8Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int32X8# #) Source
Read a vector from specified index of mutable array.
Warning: this can fail with an unchecked exception.
readInt32X8OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int32X8# #) Source
Reads vector; offset in bytes.
Warning: this can fail with an unchecked exception.
readInt64Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int64# #) Source
Read a 64-bit signed integer from mutable array; offset in 8-byte words.
Warning: this can fail with an unchecked exception.
readInt64ArrayAsInt64X2# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int64X2# #) Source
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
readInt64ArrayAsInt64X4# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int64X4# #) Source
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
readInt64ArrayAsInt64X8# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int64X8# #) Source
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
readInt64OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int64# #) Source
Read a 64-bit signed integer from mutable address; offset in 8-byte words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
Warning: this can fail with an unchecked exception.
readInt64OffAddrAsInt64X2# :: Addr# -> Int# -> State# d -> (# State# d, Int64X2# #) Source
Reads vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
readInt64OffAddrAsInt64X4# :: Addr# -> Int# -> State# d -> (# State# d, Int64X4# #) Source
Reads vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
readInt64OffAddrAsInt64X8# :: Addr# -> Int# -> State# d -> (# State# d, Int64X8# #) Source
Reads vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
readInt64X2Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int64X2# #) Source
Read a vector from specified index of mutable array.
Warning: this can fail with an unchecked exception.
readInt64X2OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int64X2# #) Source
Reads vector; offset in bytes.
Warning: this can fail with an unchecked exception.
readInt64X4Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int64X4# #) Source
Read a vector from specified index of mutable array.
Warning: this can fail with an unchecked exception.
readInt64X4OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int64X4# #) Source
Reads vector; offset in bytes.
Warning: this can fail with an unchecked exception.
readInt64X8Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int64X8# #) Source
Read a vector from specified index of mutable array.
Warning: this can fail with an unchecked exception.
readInt64X8OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int64X8# #) Source
Reads vector; offset in bytes.
Warning: this can fail with an unchecked exception.
readInt8Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int8# #) Source
Read an 8-bit signed integer from mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
readInt8ArrayAsInt8X16# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int8X16# #) Source
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
readInt8ArrayAsInt8X32# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int8X32# #) Source
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
readInt8ArrayAsInt8X64# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int8X64# #) Source
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
readInt8OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int8# #) Source
Read an 8-bit signed integer from mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
readInt8OffAddrAsInt8X16# :: Addr# -> Int# -> State# d -> (# State# d, Int8X16# #) Source
Reads vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
readInt8OffAddrAsInt8X32# :: Addr# -> Int# -> State# d -> (# State# d, Int8X32# #) Source
Reads vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
readInt8OffAddrAsInt8X64# :: Addr# -> Int# -> State# d -> (# State# d, Int8X64# #) Source
Reads vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
readInt8X16Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int8X16# #) Source
Read a vector from specified index of mutable array.
Warning: this can fail with an unchecked exception.
readInt8X16OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int8X16# #) Source
Reads vector; offset in bytes.
Warning: this can fail with an unchecked exception.
readInt8X32Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int8X32# #) Source
Read a vector from specified index of mutable array.
Warning: this can fail with an unchecked exception.
readInt8X32OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int8X32# #) Source
Reads vector; offset in bytes.
Warning: this can fail with an unchecked exception.
readInt8X64Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int8X64# #) Source
Read a vector from specified index of mutable array.
Warning: this can fail with an unchecked exception.
readInt8X64OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int8X64# #) Source
Reads vector; offset in bytes.
Warning: this can fail with an unchecked exception.
readIntArray# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int# #) Source
Read a word-sized integer from mutable array; offset in machine words.
Warning: this can fail with an unchecked exception.
readIntOffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int# #) Source
Read a word-sized integer from mutable address; offset in machine words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
Warning: this can fail with an unchecked exception.
readMVar# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). MVar# d a -> State# d -> (# State# d, a #) Source
If MVar# is empty, block until it becomes full. Then read its contents without modifying the MVar, without possibility of intervention from other threads.
readMutVar# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). MutVar# d a -> State# d -> (# State# d, a #) Source
Read contents of MutVar#. Result is not yet evaluated.
readSmallArray# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). SmallMutableArray# d a -> Int# -> State# d -> (# State# d, a #) Source
Read from specified index of mutable array. Result is not yet evaluated.
Warning: this can fail with an unchecked exception.
readStablePtrArray# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, StablePtr# a #) Source
Read a StablePtr# value from mutable array; offset in machine words.
Warning: this can fail with an unchecked exception.
readStablePtrOffAddr# :: Addr# -> Int# -> State# d -> (# State# d, StablePtr# a #) Source
Read a StablePtr# value from mutable address; offset in machine words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
Warning: this can fail with an unchecked exception.
readTVar# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). TVar# d a -> State# d -> (# State# d, a #) Source
Read contents of TVar# inside an STM transaction, i.e. within a call to atomically#. Does not force evaluation of the result.
readTVarIO# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). TVar# d a -> State# d -> (# State# d, a #) Source
Read contents of TVar# outside an STM transaction. Does not force evaluation of the result.
readWideCharArray# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Char# #) Source
Read a 32-bit character from mutable array; offset in 4-byte words.
Warning: this can fail with an unchecked exception.
readWideCharOffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Char# #) Source
Read a 32-bit character from mutable address; offset in 4-byte words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
Warning: this can fail with an unchecked exception.
readWord16Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word16# #) Source
Read a 16-bit unsigned integer from mutable array; offset in 2-byte words.
Warning: this can fail with an unchecked exception.
readWord16ArrayAsWord16X16# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word16X16# #) Source
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
readWord16ArrayAsWord16X32# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word16X32# #) Source
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
readWord16ArrayAsWord16X8# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word16X8# #) Source
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
readWord16OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word16# #) Source
Read a 16-bit unsigned integer from mutable address; offset in 2-byte words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
Warning: this can fail with an unchecked exception.
readWord16OffAddrAsWord16X16# :: Addr# -> Int# -> State# d -> (# State# d, Word16X16# #) Source
Reads vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
readWord16OffAddrAsWord16X32# :: Addr# -> Int# -> State# d -> (# State# d, Word16X32# #) Source
Reads vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
readWord16OffAddrAsWord16X8# :: Addr# -> Int# -> State# d -> (# State# d, Word16X8# #) Source
Reads vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
readWord16X16Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word16X16# #) Source
Read a vector from specified index of mutable array.
Warning: this can fail with an unchecked exception.
readWord16X16OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word16X16# #) Source
Reads vector; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord16X32Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word16X32# #) Source
Read a vector from specified index of mutable array.
Warning: this can fail with an unchecked exception.
readWord16X32OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word16X32# #) Source
Reads vector; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord16X8Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word16X8# #) Source
Read a vector from specified index of mutable array.
Warning: this can fail with an unchecked exception.
readWord16X8OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word16X8# #) Source
Reads vector; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord32Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word32# #) Source
Read a 32-bit unsigned integer from mutable array; offset in 4-byte words.
Warning: this can fail with an unchecked exception.
readWord32ArrayAsWord32X16# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word32X16# #) Source
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
readWord32ArrayAsWord32X4# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word32X4# #) Source
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
readWord32ArrayAsWord32X8# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word32X8# #) Source
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
readWord32OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word32# #) Source
Read a 32-bit unsigned integer from mutable address; offset in 4-byte words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
Warning: this can fail with an unchecked exception.
readWord32OffAddrAsWord32X16# :: Addr# -> Int# -> State# d -> (# State# d, Word32X16# #) Source
Reads vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
readWord32OffAddrAsWord32X4# :: Addr# -> Int# -> State# d -> (# State# d, Word32X4# #) Source
Reads vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
readWord32OffAddrAsWord32X8# :: Addr# -> Int# -> State# d -> (# State# d, Word32X8# #) Source
Reads vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
readWord32X16Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word32X16# #) Source
Read a vector from specified index of mutable array.
Warning: this can fail with an unchecked exception.
readWord32X16OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word32X16# #) Source
Reads vector; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord32X4Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word32X4# #) Source
Read a vector from specified index of mutable array.
Warning: this can fail with an unchecked exception.
readWord32X4OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word32X4# #) Source
Reads vector; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord32X8Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word32X8# #) Source
Read a vector from specified index of mutable array.
Warning: this can fail with an unchecked exception.
readWord32X8OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word32X8# #) Source
Reads vector; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord64Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word64# #) Source
Read a 64-bit unsigned integer from mutable array; offset in 8-byte words.
Warning: this can fail with an unchecked exception.
readWord64ArrayAsWord64X2# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word64X2# #) Source
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
readWord64ArrayAsWord64X4# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word64X4# #) Source
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
readWord64ArrayAsWord64X8# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word64X8# #) Source
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
readWord64OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word64# #) Source
Read a 64-bit unsigned integer from mutable address; offset in 8-byte words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
Warning: this can fail with an unchecked exception.
readWord64OffAddrAsWord64X2# :: Addr# -> Int# -> State# d -> (# State# d, Word64X2# #) Source
Reads vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
readWord64OffAddrAsWord64X4# :: Addr# -> Int# -> State# d -> (# State# d, Word64X4# #) Source
Reads vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
readWord64OffAddrAsWord64X8# :: Addr# -> Int# -> State# d -> (# State# d, Word64X8# #) Source
Reads vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
readWord64X2Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word64X2# #) Source
Read a vector from specified index of mutable array.
Warning: this can fail with an unchecked exception.
readWord64X2OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word64X2# #) Source
Reads vector; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord64X4Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word64X4# #) Source
Read a vector from specified index of mutable array.
Warning: this can fail with an unchecked exception.
readWord64X4OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word64X4# #) Source
Reads vector; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord64X8Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word64X8# #) Source
Read a vector from specified index of mutable array.
Warning: this can fail with an unchecked exception.
readWord64X8OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word64X8# #) Source
Reads vector; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word8# #) Source
Read an 8-bit unsigned integer from mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8ArrayAsAddr# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Addr# #) Source
Read a machine address from mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8ArrayAsChar# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Char# #) Source
Read an 8-bit character from mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8ArrayAsDouble# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Double# #) Source
Read a double-precision floating-point value from mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8ArrayAsFloat# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Float# #) Source
Read a single-precision floating-point value from mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8ArrayAsInt# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int# #) Source
Read a word-sized integer from mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8ArrayAsInt16# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int16# #) Source
Read a 16-bit signed integer from mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8ArrayAsInt32# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int32# #) Source
Read a 32-bit signed integer from mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8ArrayAsInt64# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int64# #) Source
Read a 64-bit signed integer from mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8ArrayAsStablePtr# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, StablePtr# a #) Source
Read a StablePtr# value from mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8ArrayAsWideChar# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Char# #) Source
Read a 32-bit character from mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8ArrayAsWord# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word# #) Source
Read a word-sized unsigned integer from mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8ArrayAsWord16# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word16# #) Source
Read a 16-bit unsigned integer from mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8ArrayAsWord32# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word32# #) Source
Read a 32-bit unsigned integer from mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8ArrayAsWord64# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word64# #) Source
Read a 64-bit unsigned integer from mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8ArrayAsWord8X16# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word8X16# #) Source
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
readWord8ArrayAsWord8X32# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word8X32# #) Source
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
readWord8ArrayAsWord8X64# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word8X64# #) Source
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
readWord8OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word8# #) Source
Read an 8-bit unsigned integer from mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8OffAddrAsAddr# :: Addr# -> Int# -> State# d -> (# State# d, Addr# #) Source
Read a machine address from mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8OffAddrAsChar# :: Addr# -> Int# -> State# d -> (# State# d, Char# #) Source
Read an 8-bit character from mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8OffAddrAsDouble# :: Addr# -> Int# -> State# d -> (# State# d, Double# #) Source
Read a double-precision floating-point value from mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8OffAddrAsFloat# :: Addr# -> Int# -> State# d -> (# State# d, Float# #) Source
Read a single-precision floating-point value from mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8OffAddrAsInt# :: Addr# -> Int# -> State# d -> (# State# d, Int# #) Source
Read a word-sized integer from mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8OffAddrAsInt16# :: Addr# -> Int# -> State# d -> (# State# d, Int16# #) Source
Read a 16-bit signed integer from mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8OffAddrAsInt32# :: Addr# -> Int# -> State# d -> (# State# d, Int32# #) Source
Read a 32-bit signed integer from mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8OffAddrAsInt64# :: Addr# -> Int# -> State# d -> (# State# d, Int64# #) Source
Read a 64-bit signed integer from mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8OffAddrAsStablePtr# :: Addr# -> Int# -> State# d -> (# State# d, StablePtr# a #) Source
Read a StablePtr# value from mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8OffAddrAsWideChar# :: Addr# -> Int# -> State# d -> (# State# d, Char# #) Source
Read a 32-bit character from mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8OffAddrAsWord# :: Addr# -> Int# -> State# d -> (# State# d, Word# #) Source
Read a word-sized unsigned integer from mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8OffAddrAsWord16# :: Addr# -> Int# -> State# d -> (# State# d, Word16# #) Source
Read a 16-bit unsigned integer from mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8OffAddrAsWord32# :: Addr# -> Int# -> State# d -> (# State# d, Word32# #) Source
Read a 32-bit unsigned integer from mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8OffAddrAsWord64# :: Addr# -> Int# -> State# d -> (# State# d, Word64# #) Source
Read a 64-bit unsigned integer from mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8OffAddrAsWord8X16# :: Addr# -> Int# -> State# d -> (# State# d, Word8X16# #) Source
Reads vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
readWord8OffAddrAsWord8X32# :: Addr# -> Int# -> State# d -> (# State# d, Word8X32# #) Source
Reads vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
readWord8OffAddrAsWord8X64# :: Addr# -> Int# -> State# d -> (# State# d, Word8X64# #) Source
Reads vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
readWord8X16Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word8X16# #) Source
Read a vector from specified index of mutable array.
Warning: this can fail with an unchecked exception.
readWord8X16OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word8X16# #) Source
Reads vector; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8X32Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word8X32# #) Source
Read a vector from specified index of mutable array.
Warning: this can fail with an unchecked exception.
readWord8X32OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word8X32# #) Source
Reads vector; offset in bytes.
Warning: this can fail with an unchecked exception.
readWord8X64Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word8X64# #) Source
Read a vector from specified index of mutable array.
Warning: this can fail with an unchecked exception.
readWord8X64OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word8X64# #) Source
Reads vector; offset in bytes.
Warning: this can fail with an unchecked exception.
readWordArray# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word# #) Source
Read a word-sized unsigned integer from mutable array; offset in machine words.
Warning: this can fail with an unchecked exception.
readWordOffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word# #) Source
Read a word-sized unsigned integer from mutable address; offset in machine words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
Warning: this can fail with an unchecked exception.
realWorld# :: State# RealWorld Source
The token used in the implementation of the IO monad as a state monad. It does not pass any information at runtime. See also runRW#.
reallyUnsafePtrEquality# :: forall {l :: Levity} {k :: Levity} (a :: TYPE ('BoxedRep l)) (b :: TYPE ('BoxedRep k)). a -> b -> Int# Source
Returns 1# if the given pointers are equal and 0# otherwise.
remAddr# :: Addr# -> Int# -> Int# Source
Return the remainder when the Addr# arg, treated like an Int#, is divided by the Int# arg.
remInt# :: Int# -> Int# -> Int# Source
Satisfies (quotInt# x y) *# y +# (remInt# x y) == x. The behavior is undefined if the second argument is zero.
remInt16# :: Int16# -> Int16# -> Int16# Source
remInt16X16# :: Int16X16# -> Int16X16# -> Int16X16# Source
Satisfies (quot# x y) times# y plus# (rem# x y) == x.
remInt16X32# :: Int16X32# -> Int16X32# -> Int16X32# Source
Satisfies (quot# x y) times# y plus# (rem# x y) == x.
remInt16X8# :: Int16X8# -> Int16X8# -> Int16X8# Source
Satisfies (quot# x y) times# y plus# (rem# x y) == x.
remInt32# :: Int32# -> Int32# -> Int32# Source
remInt32X16# :: Int32X16# -> Int32X16# -> Int32X16# Source
Satisfies (quot# x y) times# y plus# (rem# x y) == x.
remInt32X4# :: Int32X4# -> Int32X4# -> Int32X4# Source
Satisfies (quot# x y) times# y plus# (rem# x y) == x.
remInt32X8# :: Int32X8# -> Int32X8# -> Int32X8# Source
Satisfies (quot# x y) times# y plus# (rem# x y) == x.
remInt64# :: Int64# -> Int64# -> Int64# Source
remInt64X2# :: Int64X2# -> Int64X2# -> Int64X2# Source
Satisfies (quot# x y) times# y plus# (rem# x y) == x.
remInt64X4# :: Int64X4# -> Int64X4# -> Int64X4# Source
Satisfies (quot# x y) times# y plus# (rem# x y) == x.
remInt64X8# :: Int64X8# -> Int64X8# -> Int64X8# Source
Satisfies (quot# x y) times# y plus# (rem# x y) == x.
remInt8# :: Int8# -> Int8# -> Int8# Source
remInt8X16# :: Int8X16# -> Int8X16# -> Int8X16# Source
Satisfies (quot# x y) times# y plus# (rem# x y) == x.
remInt8X32# :: Int8X32# -> Int8X32# -> Int8X32# Source
Satisfies (quot# x y) times# y plus# (rem# x y) == x.
remInt8X64# :: Int8X64# -> Int8X64# -> Int8X64# Source
Satisfies (quot# x y) times# y plus# (rem# x y) == x.
remWord# :: Word# -> Word# -> Word# Source
remWord16# :: Word16# -> Word16# -> Word16# Source
remWord16X16# :: Word16X16# -> Word16X16# -> Word16X16# Source
Satisfies (quot# x y) times# y plus# (rem# x y) == x.
remWord16X32# :: Word16X32# -> Word16X32# -> Word16X32# Source
Satisfies (quot# x y) times# y plus# (rem# x y) == x.
remWord16X8# :: Word16X8# -> Word16X8# -> Word16X8# Source
Satisfies (quot# x y) times# y plus# (rem# x y) == x.
remWord32# :: Word32# -> Word32# -> Word32# Source
remWord32X16# :: Word32X16# -> Word32X16# -> Word32X16# Source
Satisfies (quot# x y) times# y plus# (rem# x y) == x.
remWord32X4# :: Word32X4# -> Word32X4# -> Word32X4# Source
Satisfies (quot# x y) times# y plus# (rem# x y) == x.
remWord32X8# :: Word32X8# -> Word32X8# -> Word32X8# Source
Satisfies (quot# x y) times# y plus# (rem# x y) == x.
remWord64# :: Word64# -> Word64# -> Word64# Source
remWord64X2# :: Word64X2# -> Word64X2# -> Word64X2# Source
Satisfies (quot# x y) times# y plus# (rem# x y) == x.
remWord64X4# :: Word64X4# -> Word64X4# -> Word64X4# Source
Satisfies (quot# x y) times# y plus# (rem# x y) == x.
remWord64X8# :: Word64X8# -> Word64X8# -> Word64X8# Source
Satisfies (quot# x y) times# y plus# (rem# x y) == x.
remWord8# :: Word8# -> Word8# -> Word8# Source
remWord8X16# :: Word8X16# -> Word8X16# -> Word8X16# Source
Satisfies (quot# x y) times# y plus# (rem# x y) == x.
remWord8X32# :: Word8X32# -> Word8X32# -> Word8X32# Source
Satisfies (quot# x y) times# y plus# (rem# x y) == x.
remWord8X64# :: Word8X64# -> Word8X64# -> Word8X64# Source
Satisfies (quot# x y) times# y plus# (rem# x y) == x.
resizeMutableByteArray# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, MutableByteArray# d #) Source
Resize mutable byte array to new specified size (in bytes), shrinking or growing it. The returned MutableByteArray# is either the original MutableByteArray# resized in-place or, if not possible, a newly allocated (unpinned) MutableByteArray# (with the original content copied over).
To avoid undefined behaviour, the original MutableByteArray# shall not be accessed anymore after a resizeMutableByteArray# has been performed. Moreover, no reference to the old one should be kept in order to allow garbage collection of the original MutableByteArray# in case a new MutableByteArray# had to be allocated.
Since: ghc-prim-0.4.0.0
retry# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)). State# RealWorld -> (# State# RealWorld, a #) Source
rightSection :: forall {n :: Multiplicity} {o :: Multiplicity} a b c. (a %n -> b %o -> c) -> b %o -> a %n -> c Source
seq :: a -> b -> b infixr 0 Source
The value of seq a b is bottom if a is bottom, and otherwise equal to b. In other words, it evaluates the first argument a to weak head normal form (WHNF). seq is usually introduced to improve performance by avoiding unneeded laziness.
A note on evaluation order: the expression seq a b does not guarantee that a will be evaluated before b. The only guarantee given by seq is that the both a and b will be evaluated before seq returns a value. In particular, this means that b may be evaluated before a. If you need to guarantee a specific order of evaluation, you must use the function pseq from the "parallel" package.
setAddrRange# :: Addr# -> Int# -> Int# -> State# RealWorld -> State# RealWorld Source
setAddrRange# dest len c sets all of the bytes in [dest, dest+len) to the value c.
Analogous to the standard C function memset, but with a different argument order.
Warning: this can fail with an unchecked exception.
Since: ghc-prim-0.11.0
setByteArray# :: MutableByteArray# d -> Int# -> Int# -> Int# -> State# d -> State# d Source
setByteArray# ba off len c sets the byte range [off, off+len) of the MutableByteArray# to the byte c.
Warning: this can fail with an unchecked exception.
setThreadAllocationCounter# :: Int64# -> State# RealWorld -> State# RealWorld Source
Sets the allocation counter for the current thread to the given value.
shrinkMutableByteArray# :: MutableByteArray# d -> Int# -> State# d -> State# d Source
Shrink mutable byte array to new specified size (in bytes), in the specified state thread. The new size argument must be less than or equal to the current size as reported by getSizeofMutableByteArray#.
Assuming the non-profiling RTS, this primitive compiles to an O(1) operation in C--, modifying the array in-place. Backends bypassing C-- representation (such as JavaScript) might behave differently.
Warning: this can fail with an unchecked exception.
Since: ghc-prim-0.4.0.0
shrinkSmallMutableArray# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). SmallMutableArray# d a -> Int# -> State# d -> State# d Source
Shrink mutable array to new specified size, in the specified state thread. The new size argument must be less than or equal to the current size as reported by getSizeofSmallMutableArray#.
Assuming the non-profiling RTS, for the copying garbage collector (default) this primitive compiles to an O(1) operation in C--, modifying the array in-place. For the non-moving garbage collector, however, the time is proportional to the number of elements shrinked out. Backends bypassing C-- representation (such as JavaScript) might behave differently.
Warning: this can fail with an unchecked exception.
Since: ghc-prim-0.6.1
sinDouble# :: Double# -> Double# Source
sinFloat# :: Float# -> Float# Source
sinhDouble# :: Double# -> Double# Source
sinhFloat# :: Float# -> Float# Source
sizeofArray# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)). Array# a -> Int# Source
Return the number of elements in the array.
sizeofByteArray# :: ByteArray# -> Int# Source
Return the size of the array in bytes.
sizeofMutableArray# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). MutableArray# d a -> Int# Source
Return the number of elements in the array.
sizeofMutableByteArray# :: MutableByteArray# d -> Int# Source
Deprecated: Use getSizeofMutableByteArray# instead
Return the size of the array in bytes. Deprecated, it is unsafe in the presence of shrinkMutableByteArray# and resizeMutableByteArray# operations on the same mutable byte array.
sizeofSmallArray# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)). SmallArray# a -> Int# Source
Return the number of elements in the array.
sizeofSmallMutableArray# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). SmallMutableArray# d a -> Int# Source
Deprecated: Use getSizeofSmallMutableArray# instead
Return the number of elements in the array. Deprecated, it is unsafe in the presence of shrinkSmallMutableArray# and resizeSmallMutableArray# operations on the same small mutable array.
spark# :: a -> State# d -> (# State# d, a #) Source
sqrtDouble# :: Double# -> Double# Source
sqrtFloat# :: Float# -> Float# Source
stableNameToInt# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)). StableName# a -> Int# Source
subInt16# :: Int16# -> Int16# -> Int16# Source
subInt32# :: Int32# -> Int32# -> Int32# Source
subInt64# :: Int64# -> Int64# -> Int64# Source
subInt8# :: Int8# -> Int8# -> Int8# Source
subIntC# :: Int# -> Int# -> (# Int#, Int# #) Source
Subtract signed integers reporting overflow. First member of result is the difference truncated to an Int#; second member is zero if the true difference fits in an Int#, nonzero if overflow occurred (the difference is either too large or too small to fit in an Int#).
subWord16# :: Word16# -> Word16# -> Word16# Source
subWord32# :: Word32# -> Word32# -> Word32# Source
subWord64# :: Word64# -> Word64# -> Word64# Source
subWord8# :: Word8# -> Word8# -> Word8# Source
subWordC# :: Word# -> Word# -> (# Word#, Int# #) Source
Subtract unsigned integers reporting overflow. The first element of the pair is the result. The second element is the carry flag, which is nonzero on overflow.
tagToEnum# :: Int# -> a Source
takeMVar# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). MVar# d a -> State# d -> (# State# d, a #) Source
If MVar# is empty, block until it becomes full. Then remove and return its contents, and set it empty.
tanDouble# :: Double# -> Double# Source
tanFloat# :: Float# -> Float# Source
tanhDouble# :: Double# -> Double# Source
tanhFloat# :: Float# -> Float# Source
thawArray# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)) d. Array# a -> Int# -> Int# -> State# d -> (# State# d, MutableArray# d a #) Source
Given a source array, an offset into the source array, and a number of elements to copy, create a new array with the elements from the source array. The provided array must fully contain the specified range, but this is not checked.
Warning: this can fail with an unchecked exception.
thawSmallArray# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)) d. SmallArray# a -> Int# -> Int# -> State# d -> (# State# d, SmallMutableArray# d a #) Source
Given a source array, an offset into the source array, and a number of elements to copy, create a new array with the elements from the source array. The provided array must fully contain the specified range, but this is not checked.
Warning: this can fail with an unchecked exception.
threadLabel# :: ThreadId# -> State# RealWorld -> (# State# RealWorld, Int#, ByteArray# #) Source
Get the label of the given thread. Morally of type ThreadId# -> IO (Maybe ByteArray#), with a 1# tag denoting Just.
Since: ghc-prim-0.10
threadStatus# :: ThreadId# -> State# RealWorld -> (# State# RealWorld, Int#, Int#, Int# #) Source
Get the status of the given thread. Result is (ThreadStatus, Capability, Locked) where ThreadStatus is one of the status constants defined in rts/Constants.h, Capability is the number of the capability which currently owns the thread, and Locked is a boolean indicating whether the thread is bound to that capability.
Since: ghc-prim-0.9
timesDoubleX2# :: DoubleX2# -> DoubleX2# -> DoubleX2# Source
Multiply two vectors element-wise.
timesDoubleX4# :: DoubleX4# -> DoubleX4# -> DoubleX4# Source
Multiply two vectors element-wise.
timesDoubleX8# :: DoubleX8# -> DoubleX8# -> DoubleX8# Source
Multiply two vectors element-wise.
timesFloat# :: Float# -> Float# -> Float# Source
timesFloatX16# :: FloatX16# -> FloatX16# -> FloatX16# Source
Multiply two vectors element-wise.
timesFloatX4# :: FloatX4# -> FloatX4# -> FloatX4# Source
Multiply two vectors element-wise.
timesFloatX8# :: FloatX8# -> FloatX8# -> FloatX8# Source
Multiply two vectors element-wise.
timesInt16# :: Int16# -> Int16# -> Int16# Source
timesInt16X16# :: Int16X16# -> Int16X16# -> Int16X16# Source
Multiply two vectors element-wise.
timesInt16X32# :: Int16X32# -> Int16X32# -> Int16X32# Source
Multiply two vectors element-wise.
timesInt16X8# :: Int16X8# -> Int16X8# -> Int16X8# Source
Multiply two vectors element-wise.
timesInt2# :: Int# -> Int# -> (# Int#, Int#, Int# #) Source
Return a triple (isHighNeeded,high,low) where high and low are respectively the high and low bits of the double-word result. isHighNeeded is a cheap way to test if the high word is a sign-extension of the low word (isHighNeeded = 0#) or not (isHighNeeded = 1#).
timesInt32# :: Int32# -> Int32# -> Int32# Source
timesInt32X16# :: Int32X16# -> Int32X16# -> Int32X16# Source
Multiply two vectors element-wise.
timesInt32X4# :: Int32X4# -> Int32X4# -> Int32X4# Source
Multiply two vectors element-wise.
timesInt32X8# :: Int32X8# -> Int32X8# -> Int32X8# Source
Multiply two vectors element-wise.
timesInt64# :: Int64# -> Int64# -> Int64# Source
timesInt64X2# :: Int64X2# -> Int64X2# -> Int64X2# Source
Multiply two vectors element-wise.
timesInt64X4# :: Int64X4# -> Int64X4# -> Int64X4# Source
Multiply two vectors element-wise.
timesInt64X8# :: Int64X8# -> Int64X8# -> Int64X8# Source
Multiply two vectors element-wise.
timesInt8# :: Int8# -> Int8# -> Int8# Source
timesInt8X16# :: Int8X16# -> Int8X16# -> Int8X16# Source
Multiply two vectors element-wise.
timesInt8X32# :: Int8X32# -> Int8X32# -> Int8X32# Source
Multiply two vectors element-wise.
timesInt8X64# :: Int8X64# -> Int8X64# -> Int8X64# Source
Multiply two vectors element-wise.
timesWord# :: Word# -> Word# -> Word# Source
timesWord16# :: Word16# -> Word16# -> Word16# Source
timesWord16X16# :: Word16X16# -> Word16X16# -> Word16X16# Source
Multiply two vectors element-wise.
timesWord16X32# :: Word16X32# -> Word16X32# -> Word16X32# Source
Multiply two vectors element-wise.
timesWord16X8# :: Word16X8# -> Word16X8# -> Word16X8# Source
Multiply two vectors element-wise.
timesWord2# :: Word# -> Word# -> (# Word#, Word# #) Source
timesWord32# :: Word32# -> Word32# -> Word32# Source
timesWord32X16# :: Word32X16# -> Word32X16# -> Word32X16# Source
Multiply two vectors element-wise.
timesWord32X4# :: Word32X4# -> Word32X4# -> Word32X4# Source
Multiply two vectors element-wise.
timesWord32X8# :: Word32X8# -> Word32X8# -> Word32X8# Source
Multiply two vectors element-wise.
timesWord64# :: Word64# -> Word64# -> Word64# Source
timesWord64X2# :: Word64X2# -> Word64X2# -> Word64X2# Source
Multiply two vectors element-wise.
timesWord64X4# :: Word64X4# -> Word64X4# -> Word64X4# Source
Multiply two vectors element-wise.
timesWord64X8# :: Word64X8# -> Word64X8# -> Word64X8# Source
Multiply two vectors element-wise.
timesWord8# :: Word8# -> Word8# -> Word8# Source
timesWord8X16# :: Word8X16# -> Word8X16# -> Word8X16# Source
Multiply two vectors element-wise.
timesWord8X32# :: Word8X32# -> Word8X32# -> Word8X32# Source
Multiply two vectors element-wise.
timesWord8X64# :: Word8X64# -> Word8X64# -> Word8X64# Source
Multiply two vectors element-wise.
touch# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)) d. a -> State# d -> State# d Source
traceBinaryEvent# :: Addr# -> Int# -> State# d -> State# d Source
Emits an event via the RTS tracing framework. The contents of the event is the binary object passed as the first argument with the given length passed as the second argument. The event will be emitted to the .eventlog file.
traceEvent# :: Addr# -> State# d -> State# d Source
Emits an event via the RTS tracing framework. The contents of the event is the zero-terminated byte string passed as the first argument. The event will be emitted either to the .eventlog file, or to stderr, depending on the runtime RTS flags.
traceMarker# :: Addr# -> State# d -> State# d Source
Emits a marker event via the RTS tracing framework. The contents of the event is the zero-terminated byte string passed as the first argument. The event will be emitted either to the .eventlog file, or to stderr, depending on the runtime RTS flags.
tryPutMVar# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). MVar# d a -> a -> State# d -> (# State# d, Int# #) Source
If MVar# is full, immediately return with integer 0. Otherwise, store value arg as 'MVar#''s new contents, and return with integer 1.
tryReadMVar# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). MVar# d a -> State# d -> (# State# d, Int#, a #) Source
If MVar# is empty, immediately return with integer 0 and value undefined. Otherwise, return with integer 1 and contents of MVar#.
tryTakeMVar# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). MVar# d a -> State# d -> (# State# d, Int#, a #) Source
If MVar# is empty, immediately return with integer 0 and value undefined. Otherwise, return with integer 1 and contents of MVar#, and set MVar# empty.
uncheckedIShiftL# :: Int# -> Int# -> Int# Source
Shift left. Result undefined if shift amount is not in the range 0 to word size - 1 inclusive.
uncheckedIShiftL64# :: Int64# -> Int# -> Int64# Source
uncheckedIShiftRA# :: Int# -> Int# -> Int# Source
Shift right arithmetic. Result undefined if shift amount is not in the range 0 to word size - 1 inclusive.
uncheckedIShiftRA64# :: Int64# -> Int# -> Int64# Source
uncheckedIShiftRL# :: Int# -> Int# -> Int# Source
Shift right logical. Result undefined if shift amount is not in the range 0 to word size - 1 inclusive.
uncheckedIShiftRL64# :: Int64# -> Int# -> Int64# Source
uncheckedShiftL# :: Word# -> Int# -> Word# Source
Shift left logical. Result undefined if shift amount is not in the range 0 to word size - 1 inclusive.
uncheckedShiftL64# :: Word64# -> Int# -> Word64# Source
uncheckedShiftLInt16# :: Int16# -> Int# -> Int16# Source
uncheckedShiftLInt32# :: Int32# -> Int# -> Int32# Source
uncheckedShiftLInt8# :: Int8# -> Int# -> Int8# Source
uncheckedShiftLWord16# :: Word16# -> Int# -> Word16# Source
uncheckedShiftLWord32# :: Word32# -> Int# -> Word32# Source
uncheckedShiftLWord8# :: Word8# -> Int# -> Word8# Source
uncheckedShiftRAInt16# :: Int16# -> Int# -> Int16# Source
uncheckedShiftRAInt32# :: Int32# -> Int# -> Int32# Source
uncheckedShiftRAInt8# :: Int8# -> Int# -> Int8# Source
uncheckedShiftRL# :: Word# -> Int# -> Word# Source
Shift right logical. Result undefined if shift amount is not in the range 0 to word size - 1 inclusive.
uncheckedShiftRL64# :: Word64# -> Int# -> Word64# Source
uncheckedShiftRLInt16# :: Int16# -> Int# -> Int16# Source
uncheckedShiftRLInt32# :: Int32# -> Int# -> Int32# Source
uncheckedShiftRLInt8# :: Int8# -> Int# -> Int8# Source
uncheckedShiftRLWord16# :: Word16# -> Int# -> Word16# Source
uncheckedShiftRLWord32# :: Word32# -> Int# -> Word32# Source
uncheckedShiftRLWord8# :: Word8# -> Int# -> Word8# Source
unmaskAsyncExceptions# :: (State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> (# State# RealWorld, a #) Source
unmaskAsyncUninterruptible# k s evaluates k s such that asynchronous exceptions are unmasked.
Note that the result type here isn't quite as unrestricted as the polymorphic type might suggest; see the section "RuntimeRep polymorphism in continuation-style primops" for details.
unpackClosure# :: a -> (# Addr#, ByteArray#, Array# b #) Source
unpackClosure# closure copies the closure and pointers in the payload of the given closure into two new arrays, and returns a pointer to the first word of the closure's info table, a non-pointer array for the raw bytes of the closure, and a pointer array for the pointers in the payload.
unpackDoubleX2# :: DoubleX2# -> (# Double#, Double# #) Source
Unpack the elements of a vector into an unboxed tuple. #
unpackDoubleX4# :: DoubleX4# -> (# Double#, Double#, Double#, Double# #) Source
Unpack the elements of a vector into an unboxed tuple. #
unpackDoubleX8# :: DoubleX8# -> (# Double#, Double#, Double#, Double#, Double#, Double#, Double#, Double# #) Source
Unpack the elements of a vector into an unboxed tuple. #
unpackFloatX16# :: FloatX16# -> (# Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float# #) Source
Unpack the elements of a vector into an unboxed tuple. #
unpackFloatX4# :: FloatX4# -> (# Float#, Float#, Float#, Float# #) Source
Unpack the elements of a vector into an unboxed tuple. #
unpackFloatX8# :: FloatX8# -> (# Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float# #) Source
Unpack the elements of a vector into an unboxed tuple. #
unpackInt16X16# :: Int16X16# -> (# Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16# #) Source
Unpack the elements of a vector into an unboxed tuple. #
unpackInt16X32# :: Int16X32# -> (# Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16# #) Source
Unpack the elements of a vector into an unboxed tuple. #
unpackInt16X8# :: Int16X8# -> (# Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16#, Int16# #) Source
Unpack the elements of a vector into an unboxed tuple. #
unpackInt32X16# :: Int32X16# -> (# Int32#, Int32#, Int32#, Int32#, Int32#, Int32#, Int32#, Int32#, Int32#, Int32#, Int32#, Int32#, Int32#, Int32#, Int32#, Int32# #) Source
Unpack the elements of a vector into an unboxed tuple. #
unpackInt32X4# :: Int32X4# -> (# Int32#, Int32#, Int32#, Int32# #) Source
Unpack the elements of a vector into an unboxed tuple. #
unpackInt32X8# :: Int32X8# -> (# Int32#, Int32#, Int32#, Int32#, Int32#, Int32#, Int32#, Int32# #) Source
Unpack the elements of a vector into an unboxed tuple. #
unpackInt64X2# :: Int64X2# -> (# Int64#, Int64# #) Source
Unpack the elements of a vector into an unboxed tuple. #
unpackInt64X4# :: Int64X4# -> (# Int64#, Int64#, Int64#, Int64# #) Source
Unpack the elements of a vector into an unboxed tuple. #
unpackInt64X8# :: Int64X8# -> (# Int64#, Int64#, Int64#, Int64#, Int64#, Int64#, Int64#, Int64# #) Source
Unpack the elements of a vector into an unboxed tuple. #
unpackInt8X16# :: Int8X16# -> (# Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8# #) Source
Unpack the elements of a vector into an unboxed tuple. #
unpackInt8X32# :: Int8X32# -> (# Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8# #) Source
Unpack the elements of a vector into an unboxed tuple. #
unpackInt8X64# :: Int8X64# -> (# Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8#, Int8# #) Source
Unpack the elements of a vector into an unboxed tuple. #
unpackWord16X16# :: Word16X16# -> (# Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16# #) Source
Unpack the elements of a vector into an unboxed tuple. #
unpackWord16X32# :: Word16X32# -> (# Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16# #) Source
Unpack the elements of a vector into an unboxed tuple. #
unpackWord16X8# :: Word16X8# -> (# Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16#, Word16# #) Source
Unpack the elements of a vector into an unboxed tuple. #
unpackWord32X16# :: Word32X16# -> (# Word32#, Word32#, Word32#, Word32#, Word32#, Word32#, Word32#, Word32#, Word32#, Word32#, Word32#, Word32#, Word32#, Word32#, Word32#, Word32# #) Source
Unpack the elements of a vector into an unboxed tuple. #
unpackWord32X4# :: Word32X4# -> (# Word32#, Word32#, Word32#, Word32# #) Source
Unpack the elements of a vector into an unboxed tuple. #
unpackWord32X8# :: Word32X8# -> (# Word32#, Word32#, Word32#, Word32#, Word32#, Word32#, Word32#, Word32# #) Source
Unpack the elements of a vector into an unboxed tuple. #
unpackWord64X2# :: Word64X2# -> (# Word64#, Word64# #) Source
Unpack the elements of a vector into an unboxed tuple. #
unpackWord64X4# :: Word64X4# -> (# Word64#, Word64#, Word64#, Word64# #) Source
Unpack the elements of a vector into an unboxed tuple. #
unpackWord64X8# :: Word64X8# -> (# Word64#, Word64#, Word64#, Word64#, Word64#, Word64#, Word64#, Word64# #) Source
Unpack the elements of a vector into an unboxed tuple. #
unpackWord8X16# :: Word8X16# -> (# Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8# #) Source
Unpack the elements of a vector into an unboxed tuple. #
unpackWord8X32# :: Word8X32# -> (# Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8# #) Source
Unpack the elements of a vector into an unboxed tuple. #
unpackWord8X64# :: Word8X64# -> (# Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8#, Word8# #) Source
Unpack the elements of a vector into an unboxed tuple. #
unsafeFreezeArray# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). MutableArray# d a -> State# d -> (# State# d, Array# a #) Source
Make a mutable array immutable, without copying.
unsafeFreezeByteArray# :: MutableByteArray# d -> State# d -> (# State# d, ByteArray# #) Source
Make a mutable byte array immutable, without copying.
unsafeFreezeSmallArray# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). SmallMutableArray# d a -> State# d -> (# State# d, SmallArray# a #) Source
Make a mutable array immutable, without copying.
unsafeThawArray# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)) d. Array# a -> State# d -> (# State# d, MutableArray# d a #) Source
Make an immutable array mutable, without copying.
unsafeThawByteArray# :: ByteArray# -> State# d -> (# State# d, MutableByteArray# d #) Source
Make an immutable byte array mutable, without copying.
Since: ghc-prim-0.12.0.0
unsafeThawSmallArray# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)) d. SmallArray# a -> State# d -> (# State# d, SmallMutableArray# d a #) Source
Make an immutable array mutable, without copying.
Deprecated: Use an unboxed unit tuple instead
This is an alias for the unboxed unit tuple constructor. In earlier versions of GHC, void# was a value of the primitive type Void#, which is now defined to be (# #).
waitRead# :: Int# -> State# d -> State# d Source
Block until input is available on specified file descriptor.
waitWrite# :: Int# -> State# d -> State# d Source
Block until output is possible on specified file descriptor.
word16ToInt16# :: Word16# -> Int16# Source
word16ToWord# :: Word16# -> Word# Source
word2Double# :: Word# -> Double# Source
Convert an Word# to the corresponding Double# with the same integral value (up to truncation due to floating-point precision). e.g. word2Double# 1## == 1.0##
word2Float# :: Word# -> Float# Source
Convert an Word# to the corresponding Float# with the same integral value (up to truncation due to floating-point precision). e.g. word2Float# 1## == 1.0#
word2Int# :: Word# -> Int# Source
word32ToInt32# :: Word32# -> Int32# Source
word32ToWord# :: Word32# -> Word# Source
word64ToInt64# :: Word64# -> Int64# Source
word64ToWord# :: Word64# -> Word# Source
word8ToInt8# :: Word8# -> Int8# Source
word8ToWord# :: Word8# -> Word# Source
wordToWord16# :: Word# -> Word16# Source
wordToWord32# :: Word# -> Word32# Source
wordToWord64# :: Word# -> Word64# Source
wordToWord8# :: Word# -> Word8# Source
writeAddrArray# :: MutableByteArray# d -> Int# -> Addr# -> State# d -> State# d Source
Write a machine address to mutable array; offset in machine words.
Warning: this can fail with an unchecked exception.
writeAddrOffAddr# :: Addr# -> Int# -> Addr# -> State# d -> State# d Source
Write a machine address to mutable address; offset in machine words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
Warning: this can fail with an unchecked exception.
writeArray# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). MutableArray# d a -> Int# -> a -> State# d -> State# d Source
Write to specified index of mutable array.
Warning: this can fail with an unchecked exception.
writeCharArray# :: MutableByteArray# d -> Int# -> Char# -> State# d -> State# d Source
Write an 8-bit character to mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
writeCharOffAddr# :: Addr# -> Int# -> Char# -> State# d -> State# d Source
Write an 8-bit character to mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
writeDoubleArray# :: MutableByteArray# d -> Int# -> Double# -> State# d -> State# d Source
Write a double-precision floating-point value to mutable array; offset in 8-byte words.
Warning: this can fail with an unchecked exception.
writeDoubleArrayAsDoubleX2# :: MutableByteArray# d -> Int# -> DoubleX2# -> State# d -> State# d Source
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
writeDoubleArrayAsDoubleX4# :: MutableByteArray# d -> Int# -> DoubleX4# -> State# d -> State# d Source
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
writeDoubleArrayAsDoubleX8# :: MutableByteArray# d -> Int# -> DoubleX8# -> State# d -> State# d Source
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
writeDoubleOffAddr# :: Addr# -> Int# -> Double# -> State# d -> State# d Source
Write a double-precision floating-point value to mutable address; offset in 8-byte words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
Warning: this can fail with an unchecked exception.
writeDoubleOffAddrAsDoubleX2# :: Addr# -> Int# -> DoubleX2# -> State# d -> State# d Source
Write vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
writeDoubleOffAddrAsDoubleX4# :: Addr# -> Int# -> DoubleX4# -> State# d -> State# d Source
Write vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
writeDoubleOffAddrAsDoubleX8# :: Addr# -> Int# -> DoubleX8# -> State# d -> State# d Source
Write vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
writeDoubleX2Array# :: MutableByteArray# d -> Int# -> DoubleX2# -> State# d -> State# d Source
Write a vector to specified index of mutable array.
Warning: this can fail with an unchecked exception.
writeDoubleX2OffAddr# :: Addr# -> Int# -> DoubleX2# -> State# d -> State# d Source
Write vector; offset in bytes.
Warning: this can fail with an unchecked exception.
writeDoubleX4Array# :: MutableByteArray# d -> Int# -> DoubleX4# -> State# d -> State# d Source
Write a vector to specified index of mutable array.
Warning: this can fail with an unchecked exception.
writeDoubleX4OffAddr# :: Addr# -> Int# -> DoubleX4# -> State# d -> State# d Source
Write vector; offset in bytes.
Warning: this can fail with an unchecked exception.
writeDoubleX8Array# :: MutableByteArray# d -> Int# -> DoubleX8# -> State# d -> State# d Source
Write a vector to specified index of mutable array.
Warning: this can fail with an unchecked exception.
writeDoubleX8OffAddr# :: Addr# -> Int# -> DoubleX8# -> State# d -> State# d Source
Write vector; offset in bytes.
Warning: this can fail with an unchecked exception.
writeFloatArray# :: MutableByteArray# d -> Int# -> Float# -> State# d -> State# d Source
Write a single-precision floating-point value to mutable array; offset in 4-byte words.
Warning: this can fail with an unchecked exception.
writeFloatArrayAsFloatX16# :: MutableByteArray# d -> Int# -> FloatX16# -> State# d -> State# d Source
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
writeFloatArrayAsFloatX4# :: MutableByteArray# d -> Int# -> FloatX4# -> State# d -> State# d Source
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
writeFloatArrayAsFloatX8# :: MutableByteArray# d -> Int# -> FloatX8# -> State# d -> State# d Source
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
writeFloatOffAddr# :: Addr# -> Int# -> Float# -> State# d -> State# d Source
Write a single-precision floating-point value to mutable address; offset in 4-byte words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
Warning: this can fail with an unchecked exception.
writeFloatOffAddrAsFloatX16# :: Addr# -> Int# -> FloatX16# -> State# d -> State# d Source
Write vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
writeFloatOffAddrAsFloatX4# :: Addr# -> Int# -> FloatX4# -> State# d -> State# d Source
Write vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
writeFloatOffAddrAsFloatX8# :: Addr# -> Int# -> FloatX8# -> State# d -> State# d Source
Write vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
writeFloatX16Array# :: MutableByteArray# d -> Int# -> FloatX16# -> State# d -> State# d Source
Write a vector to specified index of mutable array.
Warning: this can fail with an unchecked exception.
writeFloatX16OffAddr# :: Addr# -> Int# -> FloatX16# -> State# d -> State# d Source
Write vector; offset in bytes.
Warning: this can fail with an unchecked exception.
writeFloatX4Array# :: MutableByteArray# d -> Int# -> FloatX4# -> State# d -> State# d Source
Write a vector to specified index of mutable array.
Warning: this can fail with an unchecked exception.
writeFloatX4OffAddr# :: Addr# -> Int# -> FloatX4# -> State# d -> State# d Source
Write vector; offset in bytes.
Warning: this can fail with an unchecked exception.
writeFloatX8Array# :: MutableByteArray# d -> Int# -> FloatX8# -> State# d -> State# d Source
Write a vector to specified index of mutable array.
Warning: this can fail with an unchecked exception.
writeFloatX8OffAddr# :: Addr# -> Int# -> FloatX8# -> State# d -> State# d Source
Write vector; offset in bytes.
Warning: this can fail with an unchecked exception.
writeIOPort# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). IOPort# d a -> a -> State# d -> (# State# d, Int# #) Source
If IOPort# is full, immediately return with integer 0, throwing an IOPortException. Otherwise, store value arg as 'IOPort#''s new contents, and return with integer 1.
writeInt16Array# :: MutableByteArray# d -> Int# -> Int16# -> State# d -> State# d Source
Write a 16-bit signed integer to mutable array; offset in 2-byte words.
Warning: this can fail with an unchecked exception.
writeInt16ArrayAsInt16X16# :: MutableByteArray# d -> Int# -> Int16X16# -> State# d -> State# d Source
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
writeInt16ArrayAsInt16X32# :: MutableByteArray# d -> Int# -> Int16X32# -> State# d -> State# d Source
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
writeInt16ArrayAsInt16X8# :: MutableByteArray# d -> Int# -> Int16X8# -> State# d -> State# d Source
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
writeInt16OffAddr# :: Addr# -> Int# -> Int16# -> State# d -> State# d Source
Write a 16-bit signed integer to mutable address; offset in 2-byte words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
Warning: this can fail with an unchecked exception.
writeInt16OffAddrAsInt16X16# :: Addr# -> Int# -> Int16X16# -> State# d -> State# d Source
Write vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
writeInt16OffAddrAsInt16X32# :: Addr# -> Int# -> Int16X32# -> State# d -> State# d Source
Write vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
writeInt16OffAddrAsInt16X8# :: Addr# -> Int# -> Int16X8# -> State# d -> State# d Source
Write vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
writeInt16X16Array# :: MutableByteArray# d -> Int# -> Int16X16# -> State# d -> State# d Source
Write a vector to specified index of mutable array.
Warning: this can fail with an unchecked exception.
writeInt16X16OffAddr# :: Addr# -> Int# -> Int16X16# -> State# d -> State# d Source
Write vector; offset in bytes.
Warning: this can fail with an unchecked exception.
writeInt16X32Array# :: MutableByteArray# d -> Int# -> Int16X32# -> State# d -> State# d Source
Write a vector to specified index of mutable array.
Warning: this can fail with an unchecked exception.
writeInt16X32OffAddr# :: Addr# -> Int# -> Int16X32# -> State# d -> State# d Source
Write vector; offset in bytes.
Warning: this can fail with an unchecked exception.
writeInt16X8Array# :: MutableByteArray# d -> Int# -> Int16X8# -> State# d -> State# d Source
Write a vector to specified index of mutable array.
Warning: this can fail with an unchecked exception.
writeInt16X8OffAddr# :: Addr# -> Int# -> Int16X8# -> State# d -> State# d Source
Write vector; offset in bytes.
Warning: this can fail with an unchecked exception.
writeInt32Array# :: MutableByteArray# d -> Int# -> Int32# -> State# d -> State# d Source
Write a 32-bit signed integer to mutable array; offset in 4-byte words.
Warning: this can fail with an unchecked exception.
writeInt32ArrayAsInt32X16# :: MutableByteArray# d -> Int# -> Int32X16# -> State# d -> State# d Source
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
writeInt32ArrayAsInt32X4# :: MutableByteArray# d -> Int# -> Int32X4# -> State# d -> State# d Source
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
writeInt32ArrayAsInt32X8# :: MutableByteArray# d -> Int# -> Int32X8# -> State# d -> State# d Source
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
writeInt32OffAddr# :: Addr# -> Int# -> Int32# -> State# d -> State# d Source
Write a 32-bit signed integer to mutable address; offset in 4-byte words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
Warning: this can fail with an unchecked exception.
writeInt32OffAddrAsInt32X16# :: Addr# -> Int# -> Int32X16# -> State# d -> State# d Source
Write vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
writeInt32OffAddrAsInt32X4# :: Addr# -> Int# -> Int32X4# -> State# d -> State# d Source
Write vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
writeInt32OffAddrAsInt32X8# :: Addr# -> Int# -> Int32X8# -> State# d -> State# d Source
Write vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
writeInt32X16Array# :: MutableByteArray# d -> Int# -> Int32X16# -> State# d -> State# d Source
Write a vector to specified index of mutable array.
Warning: this can fail with an unchecked exception.
writeInt32X16OffAddr# :: Addr# -> Int# -> Int32X16# -> State# d -> State# d Source
Write vector; offset in bytes.
Warning: this can fail with an unchecked exception.
writeInt32X4Array# :: MutableByteArray# d -> Int# -> Int32X4# -> State# d -> State# d Source
Write a vector to specified index of mutable array.
Warning: this can fail with an unchecked exception.
writeInt32X4OffAddr# :: Addr# -> Int# -> Int32X4# -> State# d -> State# d Source
Write vector; offset in bytes.
Warning: this can fail with an unchecked exception.
writeInt32X8Array# :: MutableByteArray# d -> Int# -> Int32X8# -> State# d -> State# d Source
Write a vector to specified index of mutable array.
Warning: this can fail with an unchecked exception.
writeInt32X8OffAddr# :: Addr# -> Int# -> Int32X8# -> State# d -> State# d Source
Write vector; offset in bytes.
Warning: this can fail with an unchecked exception.
writeInt64Array# :: MutableByteArray# d -> Int# -> Int64# -> State# d -> State# d Source
Write a 64-bit signed integer to mutable array; offset in 8-byte words.
Warning: this can fail with an unchecked exception.
writeInt64ArrayAsInt64X2# :: MutableByteArray# d -> Int# -> Int64X2# -> State# d -> State# d Source
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
writeInt64ArrayAsInt64X4# :: MutableByteArray# d -> Int# -> Int64X4# -> State# d -> State# d Source
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
writeInt64ArrayAsInt64X8# :: MutableByteArray# d -> Int# -> Int64X8# -> State# d -> State# d Source
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
writeInt64OffAddr# :: Addr# -> Int# -> Int64# -> State# d -> State# d Source
Write a 64-bit signed integer to mutable address; offset in 8-byte words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
Warning: this can fail with an unchecked exception.
writeInt64OffAddrAsInt64X2# :: Addr# -> Int# -> Int64X2# -> State# d -> State# d Source
Write vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
writeInt64OffAddrAsInt64X4# :: Addr# -> Int# -> Int64X4# -> State# d -> State# d Source
Write vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
writeInt64OffAddrAsInt64X8# :: Addr# -> Int# -> Int64X8# -> State# d -> State# d Source
Write vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
writeInt64X2Array# :: MutableByteArray# d -> Int# -> Int64X2# -> State# d -> State# d Source
Write a vector to specified index of mutable array.
Warning: this can fail with an unchecked exception.
writeInt64X2OffAddr# :: Addr# -> Int# -> Int64X2# -> State# d -> State# d Source
Write vector; offset in bytes.
Warning: this can fail with an unchecked exception.
writeInt64X4Array# :: MutableByteArray# d -> Int# -> Int64X4# -> State# d -> State# d Source
Write a vector to specified index of mutable array.
Warning: this can fail with an unchecked exception.
writeInt64X4OffAddr# :: Addr# -> Int# -> Int64X4# -> State# d -> State# d Source
Write vector; offset in bytes.
Warning: this can fail with an unchecked exception.
writeInt64X8Array# :: MutableByteArray# d -> Int# -> Int64X8# -> State# d -> State# d Source
Write a vector to specified index of mutable array.
Warning: this can fail with an unchecked exception.
writeInt64X8OffAddr# :: Addr# -> Int# -> Int64X8# -> State# d -> State# d Source
Write vector; offset in bytes.
Warning: this can fail with an unchecked exception.
writeInt8Array# :: MutableByteArray# d -> Int# -> Int8# -> State# d -> State# d Source
Write an 8-bit signed integer to mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
writeInt8ArrayAsInt8X16# :: MutableByteArray# d -> Int# -> Int8X16# -> State# d -> State# d Source
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
writeInt8ArrayAsInt8X32# :: MutableByteArray# d -> Int# -> Int8X32# -> State# d -> State# d Source
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
writeInt8ArrayAsInt8X64# :: MutableByteArray# d -> Int# -> Int8X64# -> State# d -> State# d Source
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
writeInt8OffAddr# :: Addr# -> Int# -> Int8# -> State# d -> State# d Source
Write an 8-bit signed integer to mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
writeInt8OffAddrAsInt8X16# :: Addr# -> Int# -> Int8X16# -> State# d -> State# d Source
Write vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
writeInt8OffAddrAsInt8X32# :: Addr# -> Int# -> Int8X32# -> State# d -> State# d Source
Write vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
writeInt8OffAddrAsInt8X64# :: Addr# -> Int# -> Int8X64# -> State# d -> State# d Source
Write vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
writeInt8X16Array# :: MutableByteArray# d -> Int# -> Int8X16# -> State# d -> State# d Source
Write a vector to specified index of mutable array.
Warning: this can fail with an unchecked exception.
writeInt8X16OffAddr# :: Addr# -> Int# -> Int8X16# -> State# d -> State# d Source
Write vector; offset in bytes.
Warning: this can fail with an unchecked exception.
writeInt8X32Array# :: MutableByteArray# d -> Int# -> Int8X32# -> State# d -> State# d Source
Write a vector to specified index of mutable array.
Warning: this can fail with an unchecked exception.
writeInt8X32OffAddr# :: Addr# -> Int# -> Int8X32# -> State# d -> State# d Source
Write vector; offset in bytes.
Warning: this can fail with an unchecked exception.
writeInt8X64Array# :: MutableByteArray# d -> Int# -> Int8X64# -> State# d -> State# d Source
Write a vector to specified index of mutable array.
Warning: this can fail with an unchecked exception.
writeInt8X64OffAddr# :: Addr# -> Int# -> Int8X64# -> State# d -> State# d Source
Write vector; offset in bytes.
Warning: this can fail with an unchecked exception.
writeIntArray# :: MutableByteArray# d -> Int# -> Int# -> State# d -> State# d Source
Write a word-sized integer to mutable array; offset in machine words.
Warning: this can fail with an unchecked exception.
writeIntOffAddr# :: Addr# -> Int# -> Int# -> State# d -> State# d Source
Write a word-sized integer to mutable address; offset in machine words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
Warning: this can fail with an unchecked exception.
writeMutVar# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). MutVar# d a -> a -> State# d -> State# d Source
Write contents of MutVar#.
writeSmallArray# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). SmallMutableArray# d a -> Int# -> a -> State# d -> State# d Source
Write to specified index of mutable array.
Warning: this can fail with an unchecked exception.
writeStablePtrArray# :: MutableByteArray# d -> Int# -> StablePtr# a -> State# d -> State# d Source
Write a StablePtr# value to mutable array; offset in machine words.
Warning: this can fail with an unchecked exception.
writeStablePtrOffAddr# :: Addr# -> Int# -> StablePtr# a -> State# d -> State# d Source
Write a StablePtr# value to mutable address; offset in machine words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
Warning: this can fail with an unchecked exception.
writeTVar# :: forall {l :: Levity} d (a :: TYPE ('BoxedRep l)). TVar# d a -> a -> State# d -> State# d Source
Write contents of TVar#.
writeWideCharArray# :: MutableByteArray# d -> Int# -> Char# -> State# d -> State# d Source
Write a 32-bit character to mutable array; offset in 4-byte words.
Warning: this can fail with an unchecked exception.
writeWideCharOffAddr# :: Addr# -> Int# -> Char# -> State# d -> State# d Source
Write a 32-bit character to mutable address; offset in 4-byte words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
Warning: this can fail with an unchecked exception.
writeWord16Array# :: MutableByteArray# d -> Int# -> Word16# -> State# d -> State# d Source
Write a 16-bit unsigned integer to mutable array; offset in 2-byte words.
Warning: this can fail with an unchecked exception.
writeWord16ArrayAsWord16X16# :: MutableByteArray# d -> Int# -> Word16X16# -> State# d -> State# d Source
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
writeWord16ArrayAsWord16X32# :: MutableByteArray# d -> Int# -> Word16X32# -> State# d -> State# d Source
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
writeWord16ArrayAsWord16X8# :: MutableByteArray# d -> Int# -> Word16X8# -> State# d -> State# d Source
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
writeWord16OffAddr# :: Addr# -> Int# -> Word16# -> State# d -> State# d Source
Write a 16-bit unsigned integer to mutable address; offset in 2-byte words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
Warning: this can fail with an unchecked exception.
writeWord16OffAddrAsWord16X16# :: Addr# -> Int# -> Word16X16# -> State# d -> State# d Source
Write vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
writeWord16OffAddrAsWord16X32# :: Addr# -> Int# -> Word16X32# -> State# d -> State# d Source
Write vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
writeWord16OffAddrAsWord16X8# :: Addr# -> Int# -> Word16X8# -> State# d -> State# d Source
Write vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
writeWord16X16Array# :: MutableByteArray# d -> Int# -> Word16X16# -> State# d -> State# d Source
Write a vector to specified index of mutable array.
Warning: this can fail with an unchecked exception.
writeWord16X16OffAddr# :: Addr# -> Int# -> Word16X16# -> State# d -> State# d Source
Write vector; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord16X32Array# :: MutableByteArray# d -> Int# -> Word16X32# -> State# d -> State# d Source
Write a vector to specified index of mutable array.
Warning: this can fail with an unchecked exception.
writeWord16X32OffAddr# :: Addr# -> Int# -> Word16X32# -> State# d -> State# d Source
Write vector; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord16X8Array# :: MutableByteArray# d -> Int# -> Word16X8# -> State# d -> State# d Source
Write a vector to specified index of mutable array.
Warning: this can fail with an unchecked exception.
writeWord16X8OffAddr# :: Addr# -> Int# -> Word16X8# -> State# d -> State# d Source
Write vector; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord32Array# :: MutableByteArray# d -> Int# -> Word32# -> State# d -> State# d Source
Write a 32-bit unsigned integer to mutable array; offset in 4-byte words.
Warning: this can fail with an unchecked exception.
writeWord32ArrayAsWord32X16# :: MutableByteArray# d -> Int# -> Word32X16# -> State# d -> State# d Source
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
writeWord32ArrayAsWord32X4# :: MutableByteArray# d -> Int# -> Word32X4# -> State# d -> State# d Source
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
writeWord32ArrayAsWord32X8# :: MutableByteArray# d -> Int# -> Word32X8# -> State# d -> State# d Source
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
writeWord32OffAddr# :: Addr# -> Int# -> Word32# -> State# d -> State# d Source
Write a 32-bit unsigned integer to mutable address; offset in 4-byte words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
Warning: this can fail with an unchecked exception.
writeWord32OffAddrAsWord32X16# :: Addr# -> Int# -> Word32X16# -> State# d -> State# d Source
Write vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
writeWord32OffAddrAsWord32X4# :: Addr# -> Int# -> Word32X4# -> State# d -> State# d Source
Write vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
writeWord32OffAddrAsWord32X8# :: Addr# -> Int# -> Word32X8# -> State# d -> State# d Source
Write vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
writeWord32X16Array# :: MutableByteArray# d -> Int# -> Word32X16# -> State# d -> State# d Source
Write a vector to specified index of mutable array.
Warning: this can fail with an unchecked exception.
writeWord32X16OffAddr# :: Addr# -> Int# -> Word32X16# -> State# d -> State# d Source
Write vector; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord32X4Array# :: MutableByteArray# d -> Int# -> Word32X4# -> State# d -> State# d Source
Write a vector to specified index of mutable array.
Warning: this can fail with an unchecked exception.
writeWord32X4OffAddr# :: Addr# -> Int# -> Word32X4# -> State# d -> State# d Source
Write vector; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord32X8Array# :: MutableByteArray# d -> Int# -> Word32X8# -> State# d -> State# d Source
Write a vector to specified index of mutable array.
Warning: this can fail with an unchecked exception.
writeWord32X8OffAddr# :: Addr# -> Int# -> Word32X8# -> State# d -> State# d Source
Write vector; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord64Array# :: MutableByteArray# d -> Int# -> Word64# -> State# d -> State# d Source
Write a 64-bit unsigned integer to mutable array; offset in 8-byte words.
Warning: this can fail with an unchecked exception.
writeWord64ArrayAsWord64X2# :: MutableByteArray# d -> Int# -> Word64X2# -> State# d -> State# d Source
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
writeWord64ArrayAsWord64X4# :: MutableByteArray# d -> Int# -> Word64X4# -> State# d -> State# d Source
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
writeWord64ArrayAsWord64X8# :: MutableByteArray# d -> Int# -> Word64X8# -> State# d -> State# d Source
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
writeWord64OffAddr# :: Addr# -> Int# -> Word64# -> State# d -> State# d Source
Write a 64-bit unsigned integer to mutable address; offset in 8-byte words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
Warning: this can fail with an unchecked exception.
writeWord64OffAddrAsWord64X2# :: Addr# -> Int# -> Word64X2# -> State# d -> State# d Source
Write vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
writeWord64OffAddrAsWord64X4# :: Addr# -> Int# -> Word64X4# -> State# d -> State# d Source
Write vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
writeWord64OffAddrAsWord64X8# :: Addr# -> Int# -> Word64X8# -> State# d -> State# d Source
Write vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
writeWord64X2Array# :: MutableByteArray# d -> Int# -> Word64X2# -> State# d -> State# d Source
Write a vector to specified index of mutable array.
Warning: this can fail with an unchecked exception.
writeWord64X2OffAddr# :: Addr# -> Int# -> Word64X2# -> State# d -> State# d Source
Write vector; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord64X4Array# :: MutableByteArray# d -> Int# -> Word64X4# -> State# d -> State# d Source
Write a vector to specified index of mutable array.
Warning: this can fail with an unchecked exception.
writeWord64X4OffAddr# :: Addr# -> Int# -> Word64X4# -> State# d -> State# d Source
Write vector; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord64X8Array# :: MutableByteArray# d -> Int# -> Word64X8# -> State# d -> State# d Source
Write a vector to specified index of mutable array.
Warning: this can fail with an unchecked exception.
writeWord64X8OffAddr# :: Addr# -> Int# -> Word64X8# -> State# d -> State# d Source
Write vector; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8Array# :: MutableByteArray# d -> Int# -> Word8# -> State# d -> State# d Source
Write an 8-bit unsigned integer to mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8ArrayAsAddr# :: MutableByteArray# d -> Int# -> Addr# -> State# d -> State# d Source
Write a machine address to mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8ArrayAsChar# :: MutableByteArray# d -> Int# -> Char# -> State# d -> State# d Source
Write an 8-bit character to mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8ArrayAsDouble# :: MutableByteArray# d -> Int# -> Double# -> State# d -> State# d Source
Write a double-precision floating-point value to mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8ArrayAsFloat# :: MutableByteArray# d -> Int# -> Float# -> State# d -> State# d Source
Write a single-precision floating-point value to mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8ArrayAsInt# :: MutableByteArray# d -> Int# -> Int# -> State# d -> State# d Source
Write a word-sized integer to mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8ArrayAsInt16# :: MutableByteArray# d -> Int# -> Int16# -> State# d -> State# d Source
Write a 16-bit signed integer to mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8ArrayAsInt32# :: MutableByteArray# d -> Int# -> Int32# -> State# d -> State# d Source
Write a 32-bit signed integer to mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8ArrayAsInt64# :: MutableByteArray# d -> Int# -> Int64# -> State# d -> State# d Source
Write a 64-bit signed integer to mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8ArrayAsStablePtr# :: MutableByteArray# d -> Int# -> StablePtr# a -> State# d -> State# d Source
Write a StablePtr# value to mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8ArrayAsWideChar# :: MutableByteArray# d -> Int# -> Char# -> State# d -> State# d Source
Write a 32-bit character to mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8ArrayAsWord# :: MutableByteArray# d -> Int# -> Word# -> State# d -> State# d Source
Write a word-sized unsigned integer to mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8ArrayAsWord16# :: MutableByteArray# d -> Int# -> Word16# -> State# d -> State# d Source
Write a 16-bit unsigned integer to mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8ArrayAsWord32# :: MutableByteArray# d -> Int# -> Word32# -> State# d -> State# d Source
Write a 32-bit unsigned integer to mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8ArrayAsWord64# :: MutableByteArray# d -> Int# -> Word64# -> State# d -> State# d Source
Write a 64-bit unsigned integer to mutable array; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8ArrayAsWord8X16# :: MutableByteArray# d -> Int# -> Word8X16# -> State# d -> State# d Source
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
writeWord8ArrayAsWord8X32# :: MutableByteArray# d -> Int# -> Word8X32# -> State# d -> State# d Source
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
writeWord8ArrayAsWord8X64# :: MutableByteArray# d -> Int# -> Word8X64# -> State# d -> State# d Source
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Warning: this can fail with an unchecked exception.
writeWord8OffAddr# :: Addr# -> Int# -> Word8# -> State# d -> State# d Source
Write an 8-bit unsigned integer to mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8OffAddrAsAddr# :: Addr# -> Int# -> Addr# -> State# d -> State# d Source
Write a machine address to mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8OffAddrAsChar# :: Addr# -> Int# -> Char# -> State# d -> State# d Source
Write an 8-bit character to mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8OffAddrAsDouble# :: Addr# -> Int# -> Double# -> State# d -> State# d Source
Write a double-precision floating-point value to mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8OffAddrAsFloat# :: Addr# -> Int# -> Float# -> State# d -> State# d Source
Write a single-precision floating-point value to mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8OffAddrAsInt# :: Addr# -> Int# -> Int# -> State# d -> State# d Source
Write a word-sized integer to mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8OffAddrAsInt16# :: Addr# -> Int# -> Int16# -> State# d -> State# d Source
Write a 16-bit signed integer to mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8OffAddrAsInt32# :: Addr# -> Int# -> Int32# -> State# d -> State# d Source
Write a 32-bit signed integer to mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8OffAddrAsInt64# :: Addr# -> Int# -> Int64# -> State# d -> State# d Source
Write a 64-bit signed integer to mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8OffAddrAsStablePtr# :: Addr# -> Int# -> StablePtr# a -> State# d -> State# d Source
Write a StablePtr# value to mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8OffAddrAsWideChar# :: Addr# -> Int# -> Char# -> State# d -> State# d Source
Write a 32-bit character to mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8OffAddrAsWord# :: Addr# -> Int# -> Word# -> State# d -> State# d Source
Write a word-sized unsigned integer to mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8OffAddrAsWord16# :: Addr# -> Int# -> Word16# -> State# d -> State# d Source
Write a 16-bit unsigned integer to mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8OffAddrAsWord32# :: Addr# -> Int# -> Word32# -> State# d -> State# d Source
Write a 32-bit unsigned integer to mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8OffAddrAsWord64# :: Addr# -> Int# -> Word64# -> State# d -> State# d Source
Write a 64-bit unsigned integer to mutable address; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8OffAddrAsWord8X16# :: Addr# -> Int# -> Word8X16# -> State# d -> State# d Source
Write vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
writeWord8OffAddrAsWord8X32# :: Addr# -> Int# -> Word8X32# -> State# d -> State# d Source
Write vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
writeWord8OffAddrAsWord8X64# :: Addr# -> Int# -> Word8X64# -> State# d -> State# d Source
Write vector; offset in scalar elements.
Warning: this can fail with an unchecked exception.
writeWord8X16Array# :: MutableByteArray# d -> Int# -> Word8X16# -> State# d -> State# d Source
Write a vector to specified index of mutable array.
Warning: this can fail with an unchecked exception.
writeWord8X16OffAddr# :: Addr# -> Int# -> Word8X16# -> State# d -> State# d Source
Write vector; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8X32Array# :: MutableByteArray# d -> Int# -> Word8X32# -> State# d -> State# d Source
Write a vector to specified index of mutable array.
Warning: this can fail with an unchecked exception.
writeWord8X32OffAddr# :: Addr# -> Int# -> Word8X32# -> State# d -> State# d Source
Write vector; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWord8X64Array# :: MutableByteArray# d -> Int# -> Word8X64# -> State# d -> State# d Source
Write a vector to specified index of mutable array.
Warning: this can fail with an unchecked exception.
writeWord8X64OffAddr# :: Addr# -> Int# -> Word8X64# -> State# d -> State# d Source
Write vector; offset in bytes.
Warning: this can fail with an unchecked exception.
writeWordArray# :: MutableByteArray# d -> Int# -> Word# -> State# d -> State# d Source
Write a word-sized unsigned integer to mutable array; offset in machine words.
Warning: this can fail with an unchecked exception.
writeWordOffAddr# :: Addr# -> Int# -> Word# -> State# d -> State# d Source
Write a word-sized unsigned integer to mutable address; offset in machine words.
On some platforms, the access may fail for an insufficiently aligned Addr#.
Warning: this can fail with an unchecked exception.
xor# :: Word# -> Word# -> Word# Source
xor64# :: Word64# -> Word64# -> Word64# Source
xorI# :: Int# -> Int# -> Int# Source
Bitwise "xor".
xorWord16# :: Word16# -> Word16# -> Word16# Source
xorWord32# :: Word32# -> Word32# -> Word32# Source
xorWord8# :: Word8# -> Word8# -> Word8# Source
yield# :: State# RealWorld -> State# RealWorld Source
data Addr# :: TYPE 'AddrRep Source
An arbitrary machine address assumed to point outside the garbage-collected heap.
data Array# (a :: TYPE ('BoxedRep l)) :: UnliftedType Source
data ByteArray# :: UnliftedType Source
A boxed, unlifted datatype representing a region of raw memory in the garbage-collected heap, which is not scanned for pointers during garbage collection.
It is created by freezing a MutableByteArray# with unsafeFreezeByteArray#. Freezing is essentially a no-op, as MutableByteArray# and ByteArray# share the same heap structure under the hood.
The immutable and mutable variants are commonly used for scenarios requiring high-performance data structures, like Text, Primitive Vector, Unboxed Array, and ShortByteString.
Another application of fundamental importance is Integer, which is backed by ByteArray#.
The representation on the heap of a Byte Array is:
+------------+-----------------+-----------------------+ | | | | | HEADER | SIZE (in bytes) | PAYLOAD | | | | | +------------+-----------------+-----------------------+
To obtain a pointer to actual payload (e.g., for FFI purposes) use byteArrayContents# or mutableByteArrayContents#.
Alternatively, enabling the UnliftedFFITypes extension allows to mention ByteArray# and MutableByteArray# in FFI type signatures directly.
data CONSTRAINT (a :: RuntimeRep) Source
data Char# :: TYPE 'WordRep Source
data Compact# :: UnliftedType Source
data Double# :: TYPE 'DoubleRep Source
data DoubleX2# :: TYPE ('VecRep 'Vec2 'DoubleElemRep) Source
data DoubleX4# :: TYPE ('VecRep 'Vec4 'DoubleElemRep) Source
data DoubleX8# :: TYPE ('VecRep 'Vec8 'DoubleElemRep) Source
The builtin function type, written in infix form as a % m -> b. Values of this type are functions taking inputs of type a and producing outputs of type b. The multiplicity of the input is m.
Note that FUN m a b permits representation polymorphism in both a and b, so that types like Int# -> Int# can still be well-kinded.
| Category (->) Source | Since: base-3.0 |
Defined in GHC.Internal.Control.Category | |
| (PrintfArg a, HPrintfType r) => HPrintfType (a -> r) Source | Since: base-2.1 |
Defined in Text.Printf | |
| (PrintfArg a, PrintfType r) => PrintfType (a -> r) Source | Since: base-2.1 |
Defined in Text.Printf | |
| Monoid b => Monoid (a -> b) Source | Since: base-2.1 |
| Semigroup b => Semigroup (a -> b) Source | Since: base-4.9.0.0 |
| Arrow (->) Source | Since: base-2.1 |
| ArrowApply (->) Source | Since: base-2.1 |
Defined in GHC.Internal.Control.Arrow | |
| ArrowChoice (->) Source | Since: base-2.1 |
| ArrowLoop (->) Source | Since: base-2.1 |
Defined in GHC.Internal.Control.Arrow | |
| Show (a -> b) Source | Since: base-2.1 |
| Applicative ((->) r) Source | Since: base-2.1 |
| Functor ((->) r) Source | Since: base-2.1 |
Defined in GHC.Internal.Base | |
| Monad ((->) r) Source | Since: base-2.1 |
| MonadFix ((->) r) Source | Since: base-2.1 |
Defined in GHC.Internal.Control.Monad.Fix | |
data Float# :: TYPE 'FloatRep Source
data FloatX16# :: TYPE ('VecRep 'Vec16 'FloatElemRep) Source
data FloatX4# :: TYPE ('VecRep 'Vec4 'FloatElemRep) Source
data FloatX8# :: TYPE ('VecRep 'Vec8 'FloatElemRep) Source
data IOPort# a (b :: TYPE ('BoxedRep l)) :: UnliftedType Source
A shared I/O port is almost the same as an MVar#. The main difference is that IOPort has no deadlock detection or deadlock breaking code that forcibly releases the lock.
data Int# :: TYPE 'IntRep Source
data Int16# :: TYPE 'Int16Rep Source
data Int16X16# :: TYPE ('VecRep 'Vec16 'Int16ElemRep) Source
data Int16X32# :: TYPE ('VecRep 'Vec32 'Int16ElemRep) Source
data Int16X8# :: TYPE ('VecRep 'Vec8 'Int16ElemRep) Source
data Int32# :: TYPE 'Int32Rep Source
data Int32X16# :: TYPE ('VecRep 'Vec16 'Int32ElemRep) Source
data Int32X4# :: TYPE ('VecRep 'Vec4 'Int32ElemRep) Source
data Int32X8# :: TYPE ('VecRep 'Vec8 'Int32ElemRep) Source
data Int64# :: TYPE 'Int64Rep Source
data Int64X2# :: TYPE ('VecRep 'Vec2 'Int64ElemRep) Source
data Int64X4# :: TYPE ('VecRep 'Vec4 'Int64ElemRep) Source
data Int64X8# :: TYPE ('VecRep 'Vec8 'Int64ElemRep) Source
data Int8# :: TYPE 'Int8Rep Source
data Int8X16# :: TYPE ('VecRep 'Vec16 'Int8ElemRep) Source
data Int8X32# :: TYPE ('VecRep 'Vec32 'Int8ElemRep) Source
data Int8X64# :: TYPE ('VecRep 'Vec64 'Int8ElemRep) Source
data MVar# a (b :: TYPE ('BoxedRep l)) :: UnliftedType Source
A shared mutable variable (not the same as a MutVar#!). (Note: in a non-concurrent implementation, (MVar# a) can be represented by (MutVar# (Maybe a)).)
data MutVar# a (b :: TYPE ('BoxedRep l)) :: UnliftedType Source
A MutVar# behaves like a single-element mutable array.
data MutableArray# a (b :: TYPE ('BoxedRep l)) :: UnliftedType Source
data MutableByteArray# a :: UnliftedType Source
A mutable ByteAray#. It can be created in three ways:
newByteArray#: Create an unpinned array.newPinnedByteArray#: This will create a pinned array,newAlignedPinnedByteArray#: This will create a pinned array, with a custom alignment.Unpinned arrays can be moved around during garbage collection, so you must not store or pass pointers to these values if there is a chance for the garbage collector to kick in. That said, even unpinned arrays can be passed to unsafe FFI calls, because no garbage collection happens during these unsafe calls (see Guaranteed Call Safety in the GHC Manual). For safe FFI calls, byte arrays must be not only pinned, but also kept alive by means of the keepAlive# function for the duration of a call (that's because garbage collection cannot move a pinned array, but is free to scrap it altogether).
data PromptTag# a :: UnliftedType Source
See GHC.Prim.
data Proxy# (a :: k) :: ZeroBitType Source
The type constructor Proxy# is used to bear witness to some type variable. It's used when you want to pass around proxy values for doing things like modelling type applications. A Proxy# is not only unboxed, it also has a polymorphic kind, and has no runtime representation, being totally free.
RealWorld is deeply magical. It is primitive, but it is not unlifted (hence ptrArg). We never manipulate values of type RealWorld; it's only used in the type system, to parameterise State#.
data SmallArray# (a :: TYPE ('BoxedRep l)) :: UnliftedType Source
data SmallMutableArray# a (b :: TYPE ('BoxedRep l)) :: UnliftedType Source
data StableName# (a :: TYPE ('BoxedRep l)) :: UnliftedType Source
data StablePtr# (a :: TYPE ('BoxedRep l)) :: TYPE 'AddrRep Source
data StackSnapshot# :: UnliftedType Source
Haskell representation of a StgStack* that was created (cloned) with a function in GHC.Stack.CloneStack. Please check the documentation in that module for more detailed explanations.
data State# a :: ZeroBitType Source
State# is the primitive, unlifted type of states. It has one type parameter, thus State# RealWorld, or State# s, where s is a type variable. The only purpose of the type parameter is to keep different state threads separate. It is represented by nothing at all.
data TVar# a (b :: TYPE ('BoxedRep l)) :: UnliftedType Source
data TYPE (a :: RuntimeRep) Source
| HasResolution E0 Source | Since: base-4.1.0.0 |
||||
Defined in Data.Fixed Methodsresolution :: p E0 -> Integer Source | |||||
| HasResolution E1 Source | Since: base-4.1.0.0 |
||||
Defined in Data.Fixed Methodsresolution :: p E1 -> Integer Source | |||||
| HasResolution E12 Source | Since: base-2.1 |
||||
Defined in Data.Fixed Methodsresolution :: p E12 -> Integer Source | |||||
| HasResolution E2 Source | Since: base-4.1.0.0 |
||||
Defined in Data.Fixed Methodsresolution :: p E2 -> Integer Source | |||||
| HasResolution E3 Source | Since: base-4.1.0.0 |
||||
Defined in Data.Fixed Methodsresolution :: p E3 -> Integer Source | |||||
| HasResolution E6 Source | Since: base-2.1 |
||||
Defined in Data.Fixed Methodsresolution :: p E6 -> Integer Source | |||||
| HasResolution E9 Source | Since: base-4.1.0.0 |
||||
Defined in Data.Fixed Methodsresolution :: p E9 -> Integer Source | |||||
| Category Op Source | |||||
| Generic1 Complex Source | |||||
Defined in Data.Complex Associated Types
| |||||
| Generic1 First Source | |||||
Defined in Data.Semigroup Associated Types
| |||||
| Generic1 Last Source | |||||
Defined in Data.Semigroup Associated Types
| |||||
| Generic1 Max Source | |||||
Defined in Data.Semigroup Associated Types
| |||||
| Generic1 Min Source | |||||
Defined in Data.Semigroup Associated Types
| |||||
| Generic1 WrappedMonoid Source | |||||
Defined in Data.Semigroup Associated Types
Methodsfrom1 :: WrappedMonoid a -> Rep1 WrappedMonoid a Source to1 :: Rep1 WrappedMonoid a -> WrappedMonoid a Source | |||||
| Generic1 NonEmpty Source | |||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| Generic1 Identity Source | |||||
Defined in GHC.Internal.Data.Functor.Identity Associated Types
| |||||
| Generic1 First Source | |||||
Defined in GHC.Internal.Data.Monoid Associated Types
| |||||
| Generic1 Last Source | |||||
Defined in GHC.Internal.Data.Monoid Associated Types
| |||||
| Generic1 Down Source | |||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| Generic1 Dual Source | |||||
Defined in GHC.Internal.Data.Semigroup.Internal Associated Types
| |||||
| Generic1 Product Source | |||||
Defined in GHC.Internal.Data.Semigroup.Internal Associated Types
| |||||
| Generic1 Sum Source | |||||
Defined in GHC.Internal.Data.Semigroup.Internal Associated Types
| |||||
| Generic1 ZipList Source | |||||
Defined in GHC.Internal.Functor.ZipList Associated Types
| |||||
| Generic1 Par1 Source | |||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| Generic1 Maybe Source | |||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| Generic1 Solo Source | |||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| Generic1 [] Source | |||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| Monad m => Category (Kleisli m :: Type -> Type -> Type) Source | Since: base-3.0 |
||||
| Generic1 (WrappedMonad m :: Type -> Type) Source | |||||
Defined in Control.Applicative Associated Types
Methodsfrom1 :: WrappedMonad m a -> Rep1 (WrappedMonad m) a Source to1 :: Rep1 (WrappedMonad m) a -> WrappedMonad m a Source | |||||
| Generic1 (Arg a :: Type -> Type) Source | |||||
Defined in Data.Semigroup Associated Types
| |||||
| Generic1 (Either a :: Type -> Type) Source | |||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| Generic1 ((,) a :: Type -> Type) Source | |||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| Category (->) Source | Since: base-3.0 |
||||
Defined in GHC.Internal.Control.Category | |||||
| Generic1 (WrappedArrow a b :: Type -> Type) Source | |||||
Defined in Control.Applicative Associated Types
Methodsfrom1 :: WrappedArrow a b a0 -> Rep1 (WrappedArrow a b) a0 Source to1 :: Rep1 (WrappedArrow a b) a0 -> WrappedArrow a b a0 Source | |||||
| Generic1 (Kleisli m a :: Type -> Type) Source | |||||
Defined in GHC.Internal.Control.Arrow Associated Types
| |||||
| Generic1 ((,,) a b :: Type -> Type) Source | |||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| Generic1 ((,,,) a b c :: Type -> Type) Source | |||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| Generic1 ((,,,,) a b c d :: Type -> Type) Source | |||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| Functor f => Generic1 (Compose f g :: k -> Type) Source | |||||
Defined in Data.Functor.Compose Associated Types
| |||||
| Functor f => Generic1 (f :.: g :: k -> Type) Source | |||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| Generic1 ((,,,,,) a b c d e :: Type -> Type) Source | |||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| Generic1 ((,,,,,,) a b c d e f :: Type -> Type) Source | |||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| Generic1 ((,,,,,,,) a b c d e f g :: Type -> Type) Source | |||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| Generic1 ((,,,,,,,,) a b c d e f g h :: Type -> Type) Source | |||||
Defined in GHC.Internal.Generics Associated Types
Methodsfrom1 :: (a, b, c, d, e, f, g, h, a0) -> Rep1 ((,,,,,,,,) a b c d e f g h) a0 Source to1 :: Rep1 ((,,,,,,,,) a b c d e f g h) a0 -> (a, b, c, d, e, f, g, h, a0) Source | |||||
| Generic1 ((,,,,,,,,,) a b c d e f g h i :: Type -> Type) Source | |||||
Defined in GHC.Internal.Generics Associated Types
Methodsfrom1 :: (a, b, c, d, e, f, g, h, i, a0) -> Rep1 ((,,,,,,,,,) a b c d e f g h i) a0 Source to1 :: Rep1 ((,,,,,,,,,) a b c d e f g h i) a0 -> (a, b, c, d, e, f, g, h, i, a0) Source | |||||
| Generic1 ((,,,,,,,,,,) a b c d e f g h i j :: Type -> Type) Source | |||||
Defined in GHC.Internal.Generics Associated Types
Methodsfrom1 :: (a, b, c, d, e, f, g, h, i, j, a0) -> Rep1 ((,,,,,,,,,,) a b c d e f g h i j) a0 Source to1 :: Rep1 ((,,,,,,,,,,) a b c d e f g h i j) a0 -> (a, b, c, d, e, f, g, h, i, j, a0) Source | |||||
| Generic1 ((,,,,,,,,,,,) a b c d e f g h i j k :: Type -> Type) Source | |||||
Defined in GHC.Internal.Generics Associated Types
Methodsfrom1 :: (a, b, c, d, e, f, g, h, i, j, k, a0) -> Rep1 ((,,,,,,,,,,,) a b c d e f g h i j k) a0 Source to1 :: Rep1 ((,,,,,,,,,,,) a b c d e f g h i j k) a0 -> (a, b, c, d, e, f, g, h, i, j, k, a0) Source | |||||
| Generic1 ((,,,,,,,,,,,,) a b c d e f g h i j k l :: Type -> Type) Source | |||||
Defined in GHC.Internal.Generics Associated Types
Methodsfrom1 :: (a, b, c, d, e, f, g, h, i, j, k, l, a0) -> Rep1 ((,,,,,,,,,,,,) a b c d e f g h i j k l) a0 Source to1 :: Rep1 ((,,,,,,,,,,,,) a b c d e f g h i j k l) a0 -> (a, b, c, d, e, f, g, h, i, j, k, l, a0) Source | |||||
| Generic1 ((,,,,,,,,,,,,,) a b c d e f g h i j k l m :: Type -> Type) Source | |||||
Defined in GHC.Internal.Generics Associated Types
Methodsfrom1 :: (a, b, c, d, e, f, g, h, i, j, k, l, m, a0) -> Rep1 ((,,,,,,,,,,,,,) a b c d e f g h i j k l m) a0 Source to1 :: Rep1 ((,,,,,,,,,,,,,) a b c d e f g h i j k l m) a0 -> (a, b, c, d, e, f, g, h, i, j, k, l, m, a0) Source | |||||
| Generic1 ((,,,,,,,,,,,,,,) a b c d e f g h i j k l m n :: Type -> Type) Source | |||||
Defined in GHC.Internal.Generics Associated Types
Methodsfrom1 :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n, a0) -> Rep1 ((,,,,,,,,,,,,,,) a b c d e f g h i j k l m n) a0 Source to1 :: Rep1 ((,,,,,,,,,,,,,,) a b c d e f g h i j k l m n) a0 -> (a, b, c, d, e, f, g, h, i, j, k, l, m, n, a0) Source | |||||
| Bifoldable (Const :: Type -> Type -> Type) Source | Since: base-4.10.0.0 |
||||
| Bifoldable1 (Const :: Type -> Type -> Type) Source | |||||
Defined in Data.Bifoldable1 | |||||
| Bifunctor (Const :: Type -> Type -> Type) Source | Since: base-4.8.0.0 |
||||
| Bitraversable (Const :: Type -> Type -> Type) Source | Since: base-4.10.0.0 |
||||
Defined in Data.Bitraversable Methodsbitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> Const a b -> f (Const c d) Source | |||||
| Foldable1 (V1 :: Type -> Type) Source | Since: base-4.18.0.0 |
||||
Defined in Data.Foldable1 Methodsfold1 :: Semigroup m => V1 m -> m Source foldMap1 :: Semigroup m => (a -> m) -> V1 a -> m Source foldMap1' :: Semigroup m => (a -> m) -> V1 a -> m Source toNonEmpty :: V1 a -> NonEmpty a Source maximum :: Ord a => V1 a -> a Source minimum :: Ord a => V1 a -> a Source foldrMap1 :: (a -> b) -> (a -> b -> b) -> V1 a -> b Source foldlMap1' :: (a -> b) -> (b -> a -> b) -> V1 a -> b Source foldlMap1 :: (a -> b) -> (b -> a -> b) -> V1 a -> b Source foldrMap1' :: (a -> b) -> (a -> b -> b) -> V1 a -> b Source | |||||
| Eq1 (Proxy :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
| Eq1 (U1 :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
| Eq1 (UAddr :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
| Eq1 (UChar :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
| Eq1 (UDouble :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
| Eq1 (UFloat :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
| Eq1 (UInt :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
| Eq1 (UWord :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
| Eq1 (V1 :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
| Eq2 (Const :: Type -> Type -> Type) Source | Since: base-4.9.0.0 |
||||
| Ord1 (Proxy :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in Data.Functor.Classes | |||||
| Ord1 (U1 :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
Defined in Data.Functor.Classes | |||||
| Ord1 (UAddr :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
Defined in Data.Functor.Classes | |||||
| Ord1 (UChar :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
Defined in Data.Functor.Classes | |||||
| Ord1 (UDouble :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
Defined in Data.Functor.Classes | |||||
| Ord1 (UFloat :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
Defined in Data.Functor.Classes | |||||
| Ord1 (UInt :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
Defined in Data.Functor.Classes | |||||
| Ord1 (UWord :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
Defined in Data.Functor.Classes | |||||
| Ord1 (V1 :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
Defined in Data.Functor.Classes | |||||
| Ord2 (Const :: Type -> Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in Data.Functor.Classes | |||||
| Read1 (Proxy :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in Data.Functor.Classes MethodsliftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (Proxy a) Source liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [Proxy a] Source liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (Proxy a) Source liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [Proxy a] Source | |||||
| Read1 (U1 :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
Defined in Data.Functor.Classes | |||||
| Read1 (V1 :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
Defined in Data.Functor.Classes | |||||
| Read2 (Const :: Type -> Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in Data.Functor.Classes MethodsliftReadsPrec2 :: (Int -> ReadS a) -> ReadS [a] -> (Int -> ReadS b) -> ReadS [b] -> Int -> ReadS (Const a b) Source liftReadList2 :: (Int -> ReadS a) -> ReadS [a] -> (Int -> ReadS b) -> ReadS [b] -> ReadS [Const a b] Source liftReadPrec2 :: ReadPrec a -> ReadPrec [a] -> ReadPrec b -> ReadPrec [b] -> ReadPrec (Const a b) Source liftReadListPrec2 :: ReadPrec a -> ReadPrec [a] -> ReadPrec b -> ReadPrec [b] -> ReadPrec [Const a b] Source | |||||
| Show1 (Proxy :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
| Show1 (U1 :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
| Show1 (UAddr :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
| Show1 (UChar :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
| Show1 (UDouble :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
| Show1 (UFloat :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
| Show1 (UInt :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
| Show1 (UWord :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
| Show1 (V1 :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
| Show2 (Const :: Type -> Type -> Type) Source | Since: base-4.9.0.0 |
||||
| Contravariant (Proxy :: Type -> Type) Source | |||||
| Contravariant (U1 :: Type -> Type) Source | |||||
| Contravariant (V1 :: Type -> Type) Source | |||||
| Alternative (Proxy :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
| Alternative (U1 :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
| Applicative (Proxy :: Type -> Type) Source | Since: base-4.7.0.0 |
||||
| Applicative (U1 :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
| Functor (Proxy :: Type -> Type) Source | Since: base-4.7.0.0 |
||||
| Functor (U1 :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
| Functor (V1 :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
| Monad (Proxy :: Type -> Type) Source | Since: base-4.7.0.0 |
||||
| Monad (U1 :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
| MonadPlus (Proxy :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
| MonadPlus (U1 :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
| MonadZip (Proxy :: Type -> Type) Source | Since: ghc-internal-4.9.0.0 |
||||
| MonadZip (U1 :: Type -> Type) Source | Since: ghc-internal-4.9.0.0 |
||||
| Foldable (Proxy :: Type -> Type) Source | Since: base-4.7.0.0 |
||||
Defined in GHC.Internal.Data.Foldable Methodsfold :: Monoid m => Proxy m -> m Source foldMap :: Monoid m => (a -> m) -> Proxy a -> m Source foldMap' :: Monoid m => (a -> m) -> Proxy a -> m Source foldr :: (a -> b -> b) -> b -> Proxy a -> b Source foldr' :: (a -> b -> b) -> b -> Proxy a -> b Source foldl :: (b -> a -> b) -> b -> Proxy a -> b Source foldl' :: (b -> a -> b) -> b -> Proxy a -> b Source foldr1 :: (a -> a -> a) -> Proxy a -> a Source foldl1 :: (a -> a -> a) -> Proxy a -> a Source toList :: Proxy a -> [a] Source null :: Proxy a -> Bool Source length :: Proxy a -> Int Source elem :: Eq a => a -> Proxy a -> Bool Source maximum :: Ord a => Proxy a -> a Source minimum :: Ord a => Proxy a -> a Source | |||||
| Foldable (U1 :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Foldable Methodsfold :: Monoid m => U1 m -> m Source foldMap :: Monoid m => (a -> m) -> U1 a -> m Source foldMap' :: Monoid m => (a -> m) -> U1 a -> m Source foldr :: (a -> b -> b) -> b -> U1 a -> b Source foldr' :: (a -> b -> b) -> b -> U1 a -> b Source foldl :: (b -> a -> b) -> b -> U1 a -> b Source foldl' :: (b -> a -> b) -> b -> U1 a -> b Source foldr1 :: (a -> a -> a) -> U1 a -> a Source foldl1 :: (a -> a -> a) -> U1 a -> a Source elem :: Eq a => a -> U1 a -> Bool Source maximum :: Ord a => U1 a -> a Source minimum :: Ord a => U1 a -> a Source | |||||
| Foldable (UAddr :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Foldable Methodsfold :: Monoid m => UAddr m -> m Source foldMap :: Monoid m => (a -> m) -> UAddr a -> m Source foldMap' :: Monoid m => (a -> m) -> UAddr a -> m Source foldr :: (a -> b -> b) -> b -> UAddr a -> b Source foldr' :: (a -> b -> b) -> b -> UAddr a -> b Source foldl :: (b -> a -> b) -> b -> UAddr a -> b Source foldl' :: (b -> a -> b) -> b -> UAddr a -> b Source foldr1 :: (a -> a -> a) -> UAddr a -> a Source foldl1 :: (a -> a -> a) -> UAddr a -> a Source toList :: UAddr a -> [a] Source null :: UAddr a -> Bool Source length :: UAddr a -> Int Source elem :: Eq a => a -> UAddr a -> Bool Source maximum :: Ord a => UAddr a -> a Source minimum :: Ord a => UAddr a -> a Source | |||||
| Foldable (UChar :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Foldable Methodsfold :: Monoid m => UChar m -> m Source foldMap :: Monoid m => (a -> m) -> UChar a -> m Source foldMap' :: Monoid m => (a -> m) -> UChar a -> m Source foldr :: (a -> b -> b) -> b -> UChar a -> b Source foldr' :: (a -> b -> b) -> b -> UChar a -> b Source foldl :: (b -> a -> b) -> b -> UChar a -> b Source foldl' :: (b -> a -> b) -> b -> UChar a -> b Source foldr1 :: (a -> a -> a) -> UChar a -> a Source foldl1 :: (a -> a -> a) -> UChar a -> a Source toList :: UChar a -> [a] Source null :: UChar a -> Bool Source length :: UChar a -> Int Source elem :: Eq a => a -> UChar a -> Bool Source maximum :: Ord a => UChar a -> a Source minimum :: Ord a => UChar a -> a Source | |||||
| Foldable (UDouble :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Foldable Methodsfold :: Monoid m => UDouble m -> m Source foldMap :: Monoid m => (a -> m) -> UDouble a -> m Source foldMap' :: Monoid m => (a -> m) -> UDouble a -> m Source foldr :: (a -> b -> b) -> b -> UDouble a -> b Source foldr' :: (a -> b -> b) -> b -> UDouble a -> b Source foldl :: (b -> a -> b) -> b -> UDouble a -> b Source foldl' :: (b -> a -> b) -> b -> UDouble a -> b Source foldr1 :: (a -> a -> a) -> UDouble a -> a Source foldl1 :: (a -> a -> a) -> UDouble a -> a Source toList :: UDouble a -> [a] Source null :: UDouble a -> Bool Source length :: UDouble a -> Int Source elem :: Eq a => a -> UDouble a -> Bool Source maximum :: Ord a => UDouble a -> a Source minimum :: Ord a => UDouble a -> a Source | |||||
| Foldable (UFloat :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Foldable Methodsfold :: Monoid m => UFloat m -> m Source foldMap :: Monoid m => (a -> m) -> UFloat a -> m Source foldMap' :: Monoid m => (a -> m) -> UFloat a -> m Source foldr :: (a -> b -> b) -> b -> UFloat a -> b Source foldr' :: (a -> b -> b) -> b -> UFloat a -> b Source foldl :: (b -> a -> b) -> b -> UFloat a -> b Source foldl' :: (b -> a -> b) -> b -> UFloat a -> b Source foldr1 :: (a -> a -> a) -> UFloat a -> a Source foldl1 :: (a -> a -> a) -> UFloat a -> a Source toList :: UFloat a -> [a] Source null :: UFloat a -> Bool Source length :: UFloat a -> Int Source elem :: Eq a => a -> UFloat a -> Bool Source maximum :: Ord a => UFloat a -> a Source minimum :: Ord a => UFloat a -> a Source | |||||
| Foldable (UInt :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Foldable Methodsfold :: Monoid m => UInt m -> m Source foldMap :: Monoid m => (a -> m) -> UInt a -> m Source foldMap' :: Monoid m => (a -> m) -> UInt a -> m Source foldr :: (a -> b -> b) -> b -> UInt a -> b Source foldr' :: (a -> b -> b) -> b -> UInt a -> b Source foldl :: (b -> a -> b) -> b -> UInt a -> b Source foldl' :: (b -> a -> b) -> b -> UInt a -> b Source foldr1 :: (a -> a -> a) -> UInt a -> a Source foldl1 :: (a -> a -> a) -> UInt a -> a Source toList :: UInt a -> [a] Source length :: UInt a -> Int Source elem :: Eq a => a -> UInt a -> Bool Source maximum :: Ord a => UInt a -> a Source minimum :: Ord a => UInt a -> a Source | |||||
| Foldable (UWord :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Foldable Methodsfold :: Monoid m => UWord m -> m Source foldMap :: Monoid m => (a -> m) -> UWord a -> m Source foldMap' :: Monoid m => (a -> m) -> UWord a -> m Source foldr :: (a -> b -> b) -> b -> UWord a -> b Source foldr' :: (a -> b -> b) -> b -> UWord a -> b Source foldl :: (b -> a -> b) -> b -> UWord a -> b Source foldl' :: (b -> a -> b) -> b -> UWord a -> b Source foldr1 :: (a -> a -> a) -> UWord a -> a Source foldl1 :: (a -> a -> a) -> UWord a -> a Source toList :: UWord a -> [a] Source null :: UWord a -> Bool Source length :: UWord a -> Int Source elem :: Eq a => a -> UWord a -> Bool Source maximum :: Ord a => UWord a -> a Source minimum :: Ord a => UWord a -> a Source | |||||
| Foldable (V1 :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Foldable Methodsfold :: Monoid m => V1 m -> m Source foldMap :: Monoid m => (a -> m) -> V1 a -> m Source foldMap' :: Monoid m => (a -> m) -> V1 a -> m Source foldr :: (a -> b -> b) -> b -> V1 a -> b Source foldr' :: (a -> b -> b) -> b -> V1 a -> b Source foldl :: (b -> a -> b) -> b -> V1 a -> b Source foldl' :: (b -> a -> b) -> b -> V1 a -> b Source foldr1 :: (a -> a -> a) -> V1 a -> a Source foldl1 :: (a -> a -> a) -> V1 a -> a Source elem :: Eq a => a -> V1 a -> Bool Source maximum :: Ord a => V1 a -> a Source minimum :: Ord a => V1 a -> a Source | |||||
| Traversable (Proxy :: Type -> Type) Source | Since: base-4.7.0.0 |
||||
Defined in GHC.Internal.Data.Traversable | |||||
| Traversable (U1 :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
| Traversable (UAddr :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Traversable | |||||
| Traversable (UChar :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Traversable | |||||
| Traversable (UDouble :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Traversable | |||||
| Traversable (UFloat :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Traversable | |||||
| Traversable (UInt :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
| Traversable (UWord :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Traversable | |||||
| Traversable (V1 :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
| Bifoldable (K1 i :: Type -> Type -> Type) Source | Since: base-4.10.0.0 |
||||
| Bifunctor (K1 i :: Type -> Type -> Type) Source | Since: base-4.9.0.0 |
||||
| Bitraversable (K1 i :: Type -> Type -> Type) Source | Since: base-4.10.0.0 |
||||
Defined in Data.Bitraversable Methodsbitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> K1 i a b -> f (K1 i c d) Source | |||||
| Foldable1 f => Foldable1 (Ap f) Source | Since: base-4.18.0.0 |
||||
Defined in Data.Foldable1 Methodsfold1 :: Semigroup m => Ap f m -> m Source foldMap1 :: Semigroup m => (a -> m) -> Ap f a -> m Source foldMap1' :: Semigroup m => (a -> m) -> Ap f a -> m Source toNonEmpty :: Ap f a -> NonEmpty a Source maximum :: Ord a => Ap f a -> a Source minimum :: Ord a => Ap f a -> a Source foldrMap1 :: (a -> b) -> (a -> b -> b) -> Ap f a -> b Source foldlMap1' :: (a -> b) -> (b -> a -> b) -> Ap f a -> b Source foldlMap1 :: (a -> b) -> (b -> a -> b) -> Ap f a -> b Source foldrMap1' :: (a -> b) -> (a -> b -> b) -> Ap f a -> b Source | |||||
| Foldable1 f => Foldable1 (Alt f) Source | Since: base-4.18.0.0 |
||||
Defined in Data.Foldable1 Methodsfold1 :: Semigroup m => Alt f m -> m Source foldMap1 :: Semigroup m => (a -> m) -> Alt f a -> m Source foldMap1' :: Semigroup m => (a -> m) -> Alt f a -> m Source toNonEmpty :: Alt f a -> NonEmpty a Source maximum :: Ord a => Alt f a -> a Source minimum :: Ord a => Alt f a -> a Source foldrMap1 :: (a -> b) -> (a -> b -> b) -> Alt f a -> b Source foldlMap1' :: (a -> b) -> (b -> a -> b) -> Alt f a -> b Source foldlMap1 :: (a -> b) -> (b -> a -> b) -> Alt f a -> b Source foldrMap1' :: (a -> b) -> (a -> b -> b) -> Alt f a -> b Source | |||||
| Foldable1 f => Foldable1 (Rec1 f) Source | Since: base-4.18.0.0 |
||||
Defined in Data.Foldable1 Methodsfold1 :: Semigroup m => Rec1 f m -> m Source foldMap1 :: Semigroup m => (a -> m) -> Rec1 f a -> m Source foldMap1' :: Semigroup m => (a -> m) -> Rec1 f a -> m Source toNonEmpty :: Rec1 f a -> NonEmpty a Source maximum :: Ord a => Rec1 f a -> a Source minimum :: Ord a => Rec1 f a -> a Source foldrMap1 :: (a -> b) -> (a -> b -> b) -> Rec1 f a -> b Source foldlMap1' :: (a -> b) -> (b -> a -> b) -> Rec1 f a -> b Source foldlMap1 :: (a -> b) -> (b -> a -> b) -> Rec1 f a -> b Source foldrMap1' :: (a -> b) -> (a -> b -> b) -> Rec1 f a -> b Source | |||||
| Eq a => Eq1 (Const a :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
| (Generic1 f, Eq1 (Rep1 f)) => Eq1 (Generically1 f) Source | Since: base-4.17.0.0 |
||||
Defined in Data.Functor.Classes MethodsliftEq :: (a -> b -> Bool) -> Generically1 f a -> Generically1 f b -> Bool Source | |||||
| Eq1 f => Eq1 (Rec1 f) Source | Since: base-4.21.0.0 |
||||
| Ord a => Ord1 (Const a :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in Data.Functor.Classes | |||||
| (Generic1 f, Ord1 (Rep1 f)) => Ord1 (Generically1 f) Source | Since: base-4.17.0.0 |
||||
Defined in Data.Functor.Classes MethodsliftCompare :: (a -> b -> Ordering) -> Generically1 f a -> Generically1 f b -> Ordering Source | |||||
| Ord1 f => Ord1 (Rec1 f) Source | Since: base-4.21.0.0 |
||||
Defined in Data.Functor.Classes | |||||
| Read a => Read1 (Const a :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in Data.Functor.Classes MethodsliftReadsPrec :: (Int -> ReadS a0) -> ReadS [a0] -> Int -> ReadS (Const a a0) Source liftReadList :: (Int -> ReadS a0) -> ReadS [a0] -> ReadS [Const a a0] Source liftReadPrec :: ReadPrec a0 -> ReadPrec [a0] -> ReadPrec (Const a a0) Source liftReadListPrec :: ReadPrec a0 -> ReadPrec [a0] -> ReadPrec [Const a a0] Source | |||||
| Read1 f => Read1 (Rec1 f) Source | Since: base-4.21.0.0 |
||||
Defined in Data.Functor.Classes MethodsliftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (Rec1 f a) Source liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [Rec1 f a] Source liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (Rec1 f a) Source liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [Rec1 f a] Source | |||||
| Show a => Show1 (Const a :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
| Show1 f => Show1 (Rec1 f) Source | Since: base-4.21.0.0 |
||||
| Contravariant (Const a :: Type -> Type) Source | |||||
| Contravariant f => Contravariant (Alt f) Source | |||||
| Contravariant f => Contravariant (Rec1 f) Source | |||||
| Alternative f => Alternative (Ap f) Source | Since: base-4.12.0.0 |
||||
| Alternative f => Alternative (Alt f) Source | Since: base-4.8.0.0 |
||||
| (Generic1 f, Alternative (Rep1 f)) => Alternative (Generically1 f) Source | Since: base-4.17.0.0 |
||||
Defined in GHC.Internal.Generics Methodsempty :: Generically1 f a Source (<|>) :: Generically1 f a -> Generically1 f a -> Generically1 f a Source some :: Generically1 f a -> Generically1 f [a] Source many :: Generically1 f a -> Generically1 f [a] Source | |||||
| Alternative f => Alternative (Rec1 f) Source | Since: base-4.9.0.0 |
||||
| Monoid m => Applicative (Const m :: Type -> Type) Source | Since: base-2.0.1 |
||||
Defined in GHC.Internal.Data.Functor.Const | |||||
| Applicative f => Applicative (Ap f) Source | Since: base-4.12.0.0 |
||||
| Applicative f => Applicative (Alt f) Source | Since: base-4.8.0.0 |
||||
| (Generic1 f, Applicative (Rep1 f)) => Applicative (Generically1 f) Source | Since: base-4.17.0.0 |
||||
Defined in GHC.Internal.Generics Methodspure :: a -> Generically1 f a Source (<*>) :: Generically1 f (a -> b) -> Generically1 f a -> Generically1 f b Source liftA2 :: (a -> b -> c) -> Generically1 f a -> Generically1 f b -> Generically1 f c Source (*>) :: Generically1 f a -> Generically1 f b -> Generically1 f b Source (<*) :: Generically1 f a -> Generically1 f b -> Generically1 f a Source | |||||
| Applicative f => Applicative (Rec1 f) Source | Since: base-4.9.0.0 |
||||
| Functor (Const m :: Type -> Type) Source | Since: base-2.1 |
||||
| Functor f => Functor (Ap f) Source | Since: base-4.12.0.0 |
||||
| Functor f => Functor (Alt f) Source | Since: base-4.8.0.0 |
||||
| (Generic1 f, Functor (Rep1 f)) => Functor (Generically1 f) Source | Since: base-4.17.0.0 |
||||
Defined in GHC.Internal.Generics Methodsfmap :: (a -> b) -> Generically1 f a -> Generically1 f b Source (<$) :: a -> Generically1 f b -> Generically1 f a Source | |||||
| Functor f => Functor (Rec1 f) Source | Since: base-4.9.0.0 |
||||
| Functor (URec (Ptr ()) :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
| Functor (URec Char :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
| Functor (URec Double :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
| Functor (URec Float :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
| Functor (URec Int :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
| Functor (URec Word :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
| Monad f => Monad (Ap f) Source | Since: base-4.12.0.0 |
||||
| Monad f => Monad (Alt f) Source | Since: base-4.8.0.0 |
||||
| Monad f => Monad (Rec1 f) Source | Since: base-4.9.0.0 |
||||
| MonadPlus f => MonadPlus (Ap f) Source | Since: base-4.12.0.0 |
||||
| MonadPlus f => MonadPlus (Alt f) Source | Since: base-4.8.0.0 |
||||
| MonadPlus f => MonadPlus (Rec1 f) Source | Since: base-4.9.0.0 |
||||
| MonadFail f => MonadFail (Ap f) Source | Since: base-4.12.0.0 |
||||
Defined in GHC.Internal.Data.Monoid | |||||
| MonadFix f => MonadFix (Ap f) Source | Since: base-4.12.0.0 |
||||
Defined in GHC.Internal.Control.Monad.Fix | |||||
| MonadFix f => MonadFix (Alt f) Source | Since: base-4.8.0.0 |
||||
Defined in GHC.Internal.Control.Monad.Fix | |||||
| MonadFix f => MonadFix (Rec1 f) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Control.Monad.Fix | |||||
| MonadZip f => MonadZip (Alt f) Source | Since: ghc-internal-4.8.0.0 |
||||
| MonadZip f => MonadZip (Rec1 f) Source | Since: ghc-internal-4.9.0.0 |
||||
| Data t => Data (Proxy t) Source | Since: base-4.7.0.0 |
||||
Defined in GHC.Internal.Data.Data Methodsgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Proxy t -> c (Proxy t) Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Proxy t) Source toConstr :: Proxy t -> Constr Source dataTypeOf :: Proxy t -> DataType Source dataCast1 :: Typeable t0 => (forall d. Data d => c (t0 d)) -> Maybe (c (Proxy t)) Source dataCast2 :: Typeable t0 => (forall d e. (Data d, Data e) => c (t0 d e)) -> Maybe (c (Proxy t)) Source gmapT :: (forall b. Data b => b -> b) -> Proxy t -> Proxy t Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Proxy t -> r Source gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Proxy t -> r Source gmapQ :: (forall d. Data d => d -> u) -> Proxy t -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> Proxy t -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> Proxy t -> m (Proxy t) Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Proxy t -> m (Proxy t) Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Proxy t -> m (Proxy t) Source | |||||
| Data p => Data (U1 p) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Data Methodsgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> U1 p -> c (U1 p) Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (U1 p) Source toConstr :: U1 p -> Constr Source dataTypeOf :: U1 p -> DataType Source dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (U1 p)) Source dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (U1 p)) Source gmapT :: (forall b. Data b => b -> b) -> U1 p -> U1 p Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> U1 p -> r Source gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> U1 p -> r Source gmapQ :: (forall d. Data d => d -> u) -> U1 p -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> U1 p -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> U1 p -> m (U1 p) Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> U1 p -> m (U1 p) Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> U1 p -> m (U1 p) Source | |||||
| Data p => Data (V1 p) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Data Methodsgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> V1 p -> c (V1 p) Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (V1 p) Source toConstr :: V1 p -> Constr Source dataTypeOf :: V1 p -> DataType Source dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (V1 p)) Source dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (V1 p)) Source gmapT :: (forall b. Data b => b -> b) -> V1 p -> V1 p Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> V1 p -> r Source gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> V1 p -> r Source gmapQ :: (forall d. Data d => d -> u) -> V1 p -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> V1 p -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> V1 p -> m (V1 p) Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> V1 p -> m (V1 p) Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> V1 p -> m (V1 p) Source | |||||
| Foldable (Const m :: Type -> Type) Source | Since: base-4.7.0.0 |
||||
Defined in GHC.Internal.Data.Functor.Const Methodsfold :: Monoid m0 => Const m m0 -> m0 Source foldMap :: Monoid m0 => (a -> m0) -> Const m a -> m0 Source foldMap' :: Monoid m0 => (a -> m0) -> Const m a -> m0 Source foldr :: (a -> b -> b) -> b -> Const m a -> b Source foldr' :: (a -> b -> b) -> b -> Const m a -> b Source foldl :: (b -> a -> b) -> b -> Const m a -> b Source foldl' :: (b -> a -> b) -> b -> Const m a -> b Source foldr1 :: (a -> a -> a) -> Const m a -> a Source foldl1 :: (a -> a -> a) -> Const m a -> a Source toList :: Const m a -> [a] Source null :: Const m a -> Bool Source length :: Const m a -> Int Source elem :: Eq a => a -> Const m a -> Bool Source maximum :: Ord a => Const m a -> a Source minimum :: Ord a => Const m a -> a Source | |||||
| Foldable f => Foldable (Ap f) Source | Since: base-4.12.0.0 |
||||
Defined in GHC.Internal.Data.Foldable Methodsfold :: Monoid m => Ap f m -> m Source foldMap :: Monoid m => (a -> m) -> Ap f a -> m Source foldMap' :: Monoid m => (a -> m) -> Ap f a -> m Source foldr :: (a -> b -> b) -> b -> Ap f a -> b Source foldr' :: (a -> b -> b) -> b -> Ap f a -> b Source foldl :: (b -> a -> b) -> b -> Ap f a -> b Source foldl' :: (b -> a -> b) -> b -> Ap f a -> b Source foldr1 :: (a -> a -> a) -> Ap f a -> a Source foldl1 :: (a -> a -> a) -> Ap f a -> a Source toList :: Ap f a -> [a] Source length :: Ap f a -> Int Source elem :: Eq a => a -> Ap f a -> Bool Source maximum :: Ord a => Ap f a -> a Source minimum :: Ord a => Ap f a -> a Source | |||||
| Foldable f => Foldable (Alt f) Source | Since: base-4.12.0.0 |
||||
Defined in GHC.Internal.Data.Foldable Methodsfold :: Monoid m => Alt f m -> m Source foldMap :: Monoid m => (a -> m) -> Alt f a -> m Source foldMap' :: Monoid m => (a -> m) -> Alt f a -> m Source foldr :: (a -> b -> b) -> b -> Alt f a -> b Source foldr' :: (a -> b -> b) -> b -> Alt f a -> b Source foldl :: (b -> a -> b) -> b -> Alt f a -> b Source foldl' :: (b -> a -> b) -> b -> Alt f a -> b Source foldr1 :: (a -> a -> a) -> Alt f a -> a Source foldl1 :: (a -> a -> a) -> Alt f a -> a Source toList :: Alt f a -> [a] Source null :: Alt f a -> Bool Source length :: Alt f a -> Int Source elem :: Eq a => a -> Alt f a -> Bool Source maximum :: Ord a => Alt f a -> a Source minimum :: Ord a => Alt f a -> a Source | |||||
| Foldable f => Foldable (Rec1 f) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Foldable Methodsfold :: Monoid m => Rec1 f m -> m Source foldMap :: Monoid m => (a -> m) -> Rec1 f a -> m Source foldMap' :: Monoid m => (a -> m) -> Rec1 f a -> m Source foldr :: (a -> b -> b) -> b -> Rec1 f a -> b Source foldr' :: (a -> b -> b) -> b -> Rec1 f a -> b Source foldl :: (b -> a -> b) -> b -> Rec1 f a -> b Source foldl' :: (b -> a -> b) -> b -> Rec1 f a -> b Source foldr1 :: (a -> a -> a) -> Rec1 f a -> a Source foldl1 :: (a -> a -> a) -> Rec1 f a -> a Source toList :: Rec1 f a -> [a] Source null :: Rec1 f a -> Bool Source length :: Rec1 f a -> Int Source elem :: Eq a => a -> Rec1 f a -> Bool Source maximum :: Ord a => Rec1 f a -> a Source minimum :: Ord a => Rec1 f a -> a Source | |||||
| Traversable (Const m :: Type -> Type) Source | Since: base-4.7.0.0 |
||||
Defined in GHC.Internal.Data.Traversable | |||||
| Traversable f => Traversable (Ap f) Source | Since: base-4.12.0.0 |
||||
Defined in GHC.Internal.Data.Traversable | |||||
| Traversable f => Traversable (Alt f) Source | Since: base-4.12.0.0 |
||||
Defined in GHC.Internal.Data.Traversable | |||||
| Traversable f => Traversable (Rec1 f) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Traversable | |||||
| (Foldable1 f, Foldable1 g) => Foldable1 (Product f g) Source | It would be enough for either half of a product to be |
||||
Defined in Data.Foldable1 Methodsfold1 :: Semigroup m => Product f g m -> m Source foldMap1 :: Semigroup m => (a -> m) -> Product f g a -> m Source foldMap1' :: Semigroup m => (a -> m) -> Product f g a -> m Source toNonEmpty :: Product f g a -> NonEmpty a Source maximum :: Ord a => Product f g a -> a Source minimum :: Ord a => Product f g a -> a Source head :: Product f g a -> a Source last :: Product f g a -> a Source foldrMap1 :: (a -> b) -> (a -> b -> b) -> Product f g a -> b Source foldlMap1' :: (a -> b) -> (b -> a -> b) -> Product f g a -> b Source foldlMap1 :: (a -> b) -> (b -> a -> b) -> Product f g a -> b Source foldrMap1' :: (a -> b) -> (a -> b -> b) -> Product f g a -> b Source | |||||
| (Foldable1 f, Foldable1 g) => Foldable1 (Sum f g) Source | Since: base-4.18.0.0 |
||||
Defined in Data.Foldable1 Methodsfold1 :: Semigroup m => Sum f g m -> m Source foldMap1 :: Semigroup m => (a -> m) -> Sum f g a -> m Source foldMap1' :: Semigroup m => (a -> m) -> Sum f g a -> m Source toNonEmpty :: Sum f g a -> NonEmpty a Source maximum :: Ord a => Sum f g a -> a Source minimum :: Ord a => Sum f g a -> a Source foldrMap1 :: (a -> b) -> (a -> b -> b) -> Sum f g a -> b Source foldlMap1' :: (a -> b) -> (b -> a -> b) -> Sum f g a -> b Source foldlMap1 :: (a -> b) -> (b -> a -> b) -> Sum f g a -> b Source foldrMap1' :: (a -> b) -> (a -> b -> b) -> Sum f g a -> b Source | |||||
| (Foldable1 f, Foldable1 g) => Foldable1 (f :*: g) Source | Since: base-4.18.0.0 |
||||
Defined in Data.Foldable1 Methodsfold1 :: Semigroup m => (f :*: g) m -> m Source foldMap1 :: Semigroup m => (a -> m) -> (f :*: g) a -> m Source foldMap1' :: Semigroup m => (a -> m) -> (f :*: g) a -> m Source toNonEmpty :: (f :*: g) a -> NonEmpty a Source maximum :: Ord a => (f :*: g) a -> a Source minimum :: Ord a => (f :*: g) a -> a Source head :: (f :*: g) a -> a Source last :: (f :*: g) a -> a Source foldrMap1 :: (a -> b) -> (a -> b -> b) -> (f :*: g) a -> b Source foldlMap1' :: (a -> b) -> (b -> a -> b) -> (f :*: g) a -> b Source foldlMap1 :: (a -> b) -> (b -> a -> b) -> (f :*: g) a -> b Source foldrMap1' :: (a -> b) -> (a -> b -> b) -> (f :*: g) a -> b Source | |||||
| (Foldable1 f, Foldable1 g) => Foldable1 (f :+: g) Source | Since: base-4.18.0.0 |
||||
Defined in Data.Foldable1 Methodsfold1 :: Semigroup m => (f :+: g) m -> m Source foldMap1 :: Semigroup m => (a -> m) -> (f :+: g) a -> m Source foldMap1' :: Semigroup m => (a -> m) -> (f :+: g) a -> m Source toNonEmpty :: (f :+: g) a -> NonEmpty a Source maximum :: Ord a => (f :+: g) a -> a Source minimum :: Ord a => (f :+: g) a -> a Source head :: (f :+: g) a -> a Source last :: (f :+: g) a -> a Source foldrMap1 :: (a -> b) -> (a -> b -> b) -> (f :+: g) a -> b Source foldlMap1' :: (a -> b) -> (b -> a -> b) -> (f :+: g) a -> b Source foldlMap1 :: (a -> b) -> (b -> a -> b) -> (f :+: g) a -> b Source foldrMap1' :: (a -> b) -> (a -> b -> b) -> (f :+: g) a -> b Source | |||||
| (Eq1 f, Eq1 g) => Eq1 (Product f g) Source | Since: base-4.9.0.0 |
||||
| (Eq1 f, Eq1 g) => Eq1 (Sum f g) Source | Since: base-4.9.0.0 |
||||
| (Eq1 f, Eq1 g) => Eq1 (f :*: g) Source | Since: base-4.21.0.0 |
||||
| (Eq1 f, Eq1 g) => Eq1 (f :+: g) Source | Since: base-4.21.0.0 |
||||
| Eq c => Eq1 (K1 i c :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
| (Ord1 f, Ord1 g) => Ord1 (Product f g) Source | Since: base-4.9.0.0 |
||||
Defined in Data.Functor.Product | |||||
| (Ord1 f, Ord1 g) => Ord1 (Sum f g) Source | Since: base-4.9.0.0 |
||||
Defined in Data.Functor.Sum | |||||
| (Ord1 f, Ord1 g) => Ord1 (f :*: g) Source | Since: base-4.21.0.0 |
||||
Defined in Data.Functor.Classes | |||||
| (Ord1 f, Ord1 g) => Ord1 (f :+: g) Source | Since: base-4.21.0.0 |
||||
Defined in Data.Functor.Classes | |||||
| Ord c => Ord1 (K1 i c :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
Defined in Data.Functor.Classes | |||||
| (Read1 f, Read1 g) => Read1 (Product f g) Source | Since: base-4.9.0.0 |
||||
Defined in Data.Functor.Product MethodsliftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (Product f g a) Source liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [Product f g a] Source liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (Product f g a) Source liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [Product f g a] Source | |||||
| (Read1 f, Read1 g) => Read1 (Sum f g) Source | Since: base-4.9.0.0 |
||||
Defined in Data.Functor.Sum MethodsliftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (Sum f g a) Source liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [Sum f g a] Source liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (Sum f g a) Source liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [Sum f g a] Source | |||||
| (Read1 f, Read1 g) => Read1 (f :*: g) Source | Since: base-4.21.0.0 |
||||
Defined in Data.Functor.Classes MethodsliftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS ((f :*: g) a) Source liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [(f :*: g) a] Source liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec ((f :*: g) a) Source liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [(f :*: g) a] Source | |||||
| (Read1 f, Read1 g) => Read1 (f :+: g) Source | Since: base-4.21.0.0 |
||||
Defined in Data.Functor.Classes MethodsliftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS ((f :+: g) a) Source liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [(f :+: g) a] Source liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec ((f :+: g) a) Source liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [(f :+: g) a] Source | |||||
| Read c => Read1 (K1 i c :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
Defined in Data.Functor.Classes MethodsliftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (K1 i c a) Source liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [K1 i c a] Source liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (K1 i c a) Source liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [K1 i c a] Source | |||||
| (Show1 f, Show1 g) => Show1 (Product f g) Source | Since: base-4.9.0.0 |
||||
| (Show1 f, Show1 g) => Show1 (Sum f g) Source | Since: base-4.9.0.0 |
||||
| (Show1 f, Show1 g) => Show1 (f :*: g) Source | Since: base-4.21.0.0 |
||||
| (Show1 f, Show1 g) => Show1 (f :+: g) Source | Since: base-4.21.0.0 |
||||
| Show c => Show1 (K1 i c :: Type -> Type) Source | Since: base-4.21.0.0 |
||||
| (Contravariant f, Contravariant g) => Contravariant (Product f g) Source | |||||
| (Contravariant f, Contravariant g) => Contravariant (Sum f g) Source | |||||
| (Contravariant f, Contravariant g) => Contravariant (f :*: g) Source | |||||
| (Contravariant f, Contravariant g) => Contravariant (f :+: g) Source | |||||
| Contravariant (K1 i c :: Type -> Type) Source | |||||
| (Alternative f, Alternative g) => Alternative (Product f g) Source | Since: base-4.9.0.0 |
||||
| (Alternative f, Alternative g) => Alternative (f :*: g) Source | Since: base-4.9.0.0 |
||||
| (Applicative f, Applicative g) => Applicative (Product f g) Source | Since: base-4.9.0.0 |
||||
Defined in Data.Functor.Product Methodspure :: a -> Product f g a Source (<*>) :: Product f g (a -> b) -> Product f g a -> Product f g b Source liftA2 :: (a -> b -> c) -> Product f g a -> Product f g b -> Product f g c Source (*>) :: Product f g a -> Product f g b -> Product f g b Source (<*) :: Product f g a -> Product f g b -> Product f g a Source | |||||
| (Applicative f, Applicative g) => Applicative (f :*: g) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Generics | |||||
| Monoid c => Applicative (K1 i c :: Type -> Type) Source | Since: base-4.12.0.0 |
||||
| (Functor f, Functor g) => Functor (Product f g) Source | Since: base-4.9.0.0 |
||||
| (Functor f, Functor g) => Functor (Sum f g) Source | Since: base-4.9.0.0 |
||||
| (Functor f, Functor g) => Functor (f :*: g) Source | Since: base-4.9.0.0 |
||||
| (Functor f, Functor g) => Functor (f :+: g) Source | Since: base-4.9.0.0 |
||||
| Functor (K1 i c :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
| (Monad f, Monad g) => Monad (Product f g) Source | Since: base-4.9.0.0 |
||||
| (Monad f, Monad g) => Monad (f :*: g) Source | Since: base-4.9.0.0 |
||||
| (MonadPlus f, MonadPlus g) => MonadPlus (Product f g) Source | Since: base-4.9.0.0 |
||||
| (MonadPlus f, MonadPlus g) => MonadPlus (f :*: g) Source | Since: base-4.9.0.0 |
||||
| (Applicative f, Monoid a) => Monoid (Ap f a) Source | Since: base-4.12.0.0 |
||||
| Alternative f => Monoid (Alt f a) Source | Since: base-4.8.0.0 |
||||
| (Applicative f, Semigroup a) => Semigroup (Ap f a) Source | Since: base-4.12.0.0 |
||||
| Alternative f => Semigroup (Alt f a) Source | Since: base-4.9.0.0 |
||||
| (MonadFix f, MonadFix g) => MonadFix (Product f g) Source | Since: base-4.9.0.0 |
||||
Defined in Data.Functor.Product | |||||
| (MonadFix f, MonadFix g) => MonadFix (f :*: g) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Control.Monad.Fix | |||||
| (MonadZip f, MonadZip g) => MonadZip (Product f g) Source | Since: base-4.9.0.0 |
||||
| (MonadZip f, MonadZip g) => MonadZip (f :*: g) Source | Since: ghc-internal-4.9.0.0 |
||||
| (Data (f a), Data a, Typeable f) => Data (Ap f a) Source | Since: base-4.12.0.0 |
||||
Defined in GHC.Internal.Data.Data Methodsgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Ap f a -> c (Ap f a) Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Ap f a) Source toConstr :: Ap f a -> Constr Source dataTypeOf :: Ap f a -> DataType Source dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Ap f a)) Source dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Ap f a)) Source gmapT :: (forall b. Data b => b -> b) -> Ap f a -> Ap f a Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Ap f a -> r Source gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Ap f a -> r Source gmapQ :: (forall d. Data d => d -> u) -> Ap f a -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> Ap f a -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> Ap f a -> m (Ap f a) Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Ap f a -> m (Ap f a) Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Ap f a -> m (Ap f a) Source | |||||
| (Data (f a), Data a, Typeable f) => Data (Alt f a) Source | Since: base-4.8.0.0 |
||||
Defined in GHC.Internal.Data.Data Methodsgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Alt f a -> c (Alt f a) Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Alt f a) Source toConstr :: Alt f a -> Constr Source dataTypeOf :: Alt f a -> DataType Source dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Alt f a)) Source dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Alt f a)) Source gmapT :: (forall b. Data b => b -> b) -> Alt f a -> Alt f a Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Alt f a -> r Source gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Alt f a -> r Source gmapQ :: (forall d. Data d => d -> u) -> Alt f a -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> Alt f a -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> Alt f a -> m (Alt f a) Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Alt f a -> m (Alt f a) Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Alt f a -> m (Alt f a) Source | |||||
| (Coercible a b, Data a, Data b) => Data (Coercion a b) Source | Since: base-4.7.0.0 |
||||
Defined in GHC.Internal.Data.Data Methodsgfoldl :: (forall d b0. Data d => c (d -> b0) -> d -> c b0) -> (forall g. g -> c g) -> Coercion a b -> c (Coercion a b) Source gunfold :: (forall b0 r. Data b0 => c (b0 -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Coercion a b) Source toConstr :: Coercion a b -> Constr Source dataTypeOf :: Coercion a b -> DataType Source dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Coercion a b)) Source dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Coercion a b)) Source gmapT :: (forall b0. Data b0 => b0 -> b0) -> Coercion a b -> Coercion a b Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Coercion a b -> r Source gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Coercion a b -> r Source gmapQ :: (forall d. Data d => d -> u) -> Coercion a b -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> Coercion a b -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> Coercion a b -> m (Coercion a b) Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Coercion a b -> m (Coercion a b) Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Coercion a b -> m (Coercion a b) Source | |||||
| (a ~ b, Data a) => Data (a :~: b) Source | Since: base-4.7.0.0 |
||||
Defined in GHC.Internal.Data.Data Methodsgfoldl :: (forall d b0. Data d => c (d -> b0) -> d -> c b0) -> (forall g. g -> c g) -> (a :~: b) -> c (a :~: b) Source gunfold :: (forall b0 r. Data b0 => c (b0 -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (a :~: b) Source toConstr :: (a :~: b) -> Constr Source dataTypeOf :: (a :~: b) -> DataType Source dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (a :~: b)) Source dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (a :~: b)) Source gmapT :: (forall b0. Data b0 => b0 -> b0) -> (a :~: b) -> a :~: b Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> (a :~: b) -> r Source gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> (a :~: b) -> r Source gmapQ :: (forall d. Data d => d -> u) -> (a :~: b) -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> (a :~: b) -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> (a :~: b) -> m (a :~: b) Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> (a :~: b) -> m (a :~: b) Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> (a :~: b) -> m (a :~: b) Source | |||||
| (Data (f p), Typeable f, Data p) => Data (Rec1 f p) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Data Methodsgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Rec1 f p -> c (Rec1 f p) Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Rec1 f p) Source toConstr :: Rec1 f p -> Constr Source dataTypeOf :: Rec1 f p -> DataType Source dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Rec1 f p)) Source dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Rec1 f p)) Source gmapT :: (forall b. Data b => b -> b) -> Rec1 f p -> Rec1 f p Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Rec1 f p -> r Source gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Rec1 f p -> r Source gmapQ :: (forall d. Data d => d -> u) -> Rec1 f p -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> Rec1 f p -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> Rec1 f p -> m (Rec1 f p) Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Rec1 f p -> m (Rec1 f p) Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Rec1 f p -> m (Rec1 f p) Source | |||||
| (Foldable f, Foldable g) => Foldable (Product f g) Source | Since: base-4.9.0.0 |
||||
Defined in Data.Functor.Product Methodsfold :: Monoid m => Product f g m -> m Source foldMap :: Monoid m => (a -> m) -> Product f g a -> m Source foldMap' :: Monoid m => (a -> m) -> Product f g a -> m Source foldr :: (a -> b -> b) -> b -> Product f g a -> b Source foldr' :: (a -> b -> b) -> b -> Product f g a -> b Source foldl :: (b -> a -> b) -> b -> Product f g a -> b Source foldl' :: (b -> a -> b) -> b -> Product f g a -> b Source foldr1 :: (a -> a -> a) -> Product f g a -> a Source foldl1 :: (a -> a -> a) -> Product f g a -> a Source toList :: Product f g a -> [a] Source null :: Product f g a -> Bool Source length :: Product f g a -> Int Source elem :: Eq a => a -> Product f g a -> Bool Source maximum :: Ord a => Product f g a -> a Source minimum :: Ord a => Product f g a -> a Source | |||||
| (Foldable f, Foldable g) => Foldable (Sum f g) Source | Since: base-4.9.0.0 |
||||
Defined in Data.Functor.Sum Methodsfold :: Monoid m => Sum f g m -> m Source foldMap :: Monoid m => (a -> m) -> Sum f g a -> m Source foldMap' :: Monoid m => (a -> m) -> Sum f g a -> m Source foldr :: (a -> b -> b) -> b -> Sum f g a -> b Source foldr' :: (a -> b -> b) -> b -> Sum f g a -> b Source foldl :: (b -> a -> b) -> b -> Sum f g a -> b Source foldl' :: (b -> a -> b) -> b -> Sum f g a -> b Source foldr1 :: (a -> a -> a) -> Sum f g a -> a Source foldl1 :: (a -> a -> a) -> Sum f g a -> a Source toList :: Sum f g a -> [a] Source null :: Sum f g a -> Bool Source length :: Sum f g a -> Int Source elem :: Eq a => a -> Sum f g a -> Bool Source maximum :: Ord a => Sum f g a -> a Source minimum :: Ord a => Sum f g a -> a Source | |||||
| (Foldable f, Foldable g) => Foldable (f :*: g) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Foldable Methodsfold :: Monoid m => (f :*: g) m -> m Source foldMap :: Monoid m => (a -> m) -> (f :*: g) a -> m Source foldMap' :: Monoid m => (a -> m) -> (f :*: g) a -> m Source foldr :: (a -> b -> b) -> b -> (f :*: g) a -> b Source foldr' :: (a -> b -> b) -> b -> (f :*: g) a -> b Source foldl :: (b -> a -> b) -> b -> (f :*: g) a -> b Source foldl' :: (b -> a -> b) -> b -> (f :*: g) a -> b Source foldr1 :: (a -> a -> a) -> (f :*: g) a -> a Source foldl1 :: (a -> a -> a) -> (f :*: g) a -> a Source toList :: (f :*: g) a -> [a] Source null :: (f :*: g) a -> Bool Source length :: (f :*: g) a -> Int Source elem :: Eq a => a -> (f :*: g) a -> Bool Source maximum :: Ord a => (f :*: g) a -> a Source minimum :: Ord a => (f :*: g) a -> a Source | |||||
| (Foldable f, Foldable g) => Foldable (f :+: g) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Foldable Methodsfold :: Monoid m => (f :+: g) m -> m Source foldMap :: Monoid m => (a -> m) -> (f :+: g) a -> m Source foldMap' :: Monoid m => (a -> m) -> (f :+: g) a -> m Source foldr :: (a -> b -> b) -> b -> (f :+: g) a -> b Source foldr' :: (a -> b -> b) -> b -> (f :+: g) a -> b Source foldl :: (b -> a -> b) -> b -> (f :+: g) a -> b Source foldl' :: (b -> a -> b) -> b -> (f :+: g) a -> b Source foldr1 :: (a -> a -> a) -> (f :+: g) a -> a Source foldl1 :: (a -> a -> a) -> (f :+: g) a -> a Source toList :: (f :+: g) a -> [a] Source null :: (f :+: g) a -> Bool Source length :: (f :+: g) a -> Int Source elem :: Eq a => a -> (f :+: g) a -> Bool Source maximum :: Ord a => (f :+: g) a -> a Source minimum :: Ord a => (f :+: g) a -> a Source | |||||
| Foldable (K1 i c :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Foldable Methodsfold :: Monoid m => K1 i c m -> m Source foldMap :: Monoid m => (a -> m) -> K1 i c a -> m Source foldMap' :: Monoid m => (a -> m) -> K1 i c a -> m Source foldr :: (a -> b -> b) -> b -> K1 i c a -> b Source foldr' :: (a -> b -> b) -> b -> K1 i c a -> b Source foldl :: (b -> a -> b) -> b -> K1 i c a -> b Source foldl' :: (b -> a -> b) -> b -> K1 i c a -> b Source foldr1 :: (a -> a -> a) -> K1 i c a -> a Source foldl1 :: (a -> a -> a) -> K1 i c a -> a Source toList :: K1 i c a -> [a] Source null :: K1 i c a -> Bool Source length :: K1 i c a -> Int Source elem :: Eq a => a -> K1 i c a -> Bool Source maximum :: Ord a => K1 i c a -> a Source minimum :: Ord a => K1 i c a -> a Source | |||||
| (Traversable f, Traversable g) => Traversable (Product f g) Source | Since: base-4.9.0.0 |
||||
Defined in Data.Functor.Product Methodstraverse :: Applicative f0 => (a -> f0 b) -> Product f g a -> f0 (Product f g b) Source sequenceA :: Applicative f0 => Product f g (f0 a) -> f0 (Product f g a) Source mapM :: Monad m => (a -> m b) -> Product f g a -> m (Product f g b) Source sequence :: Monad m => Product f g (m a) -> m (Product f g a) Source | |||||
| (Traversable f, Traversable g) => Traversable (Sum f g) Source | Since: base-4.9.0.0 |
||||
Defined in Data.Functor.Sum | |||||
| (Traversable f, Traversable g) => Traversable (f :*: g) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Traversable Methodstraverse :: Applicative f0 => (a -> f0 b) -> (f :*: g) a -> f0 ((f :*: g) b) Source sequenceA :: Applicative f0 => (f :*: g) (f0 a) -> f0 ((f :*: g) a) Source mapM :: Monad m => (a -> m b) -> (f :*: g) a -> m ((f :*: g) b) Source sequence :: Monad m => (f :*: g) (m a) -> m ((f :*: g) a) Source | |||||
| (Traversable f, Traversable g) => Traversable (f :+: g) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Traversable Methodstraverse :: Applicative f0 => (a -> f0 b) -> (f :+: g) a -> f0 ((f :+: g) b) Source sequenceA :: Applicative f0 => (f :+: g) (f0 a) -> f0 ((f :+: g) a) Source mapM :: Monad m => (a -> m b) -> (f :+: g) a -> m ((f :+: g) b) Source sequence :: Monad m => (f :+: g) (m a) -> m ((f :+: g) a) Source | |||||
| Traversable (K1 i c :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Traversable | |||||
| (Applicative f, Bounded a) => Bounded (Ap f a) Source | Since: base-4.12.0.0 |
||||
| (Applicative f, Num a) => Num (Ap f a) Source |
Note that even if the underlying Commutativity: >>> Ap [10,20] + Ap [1,2]
Ap {getAp = [11,12,21,22]}
>>> Ap [1,2] + Ap [10,20]
Ap {getAp = [11,21,12,22]}
Additive inverse: >>> Ap [] + negate (Ap [])
Ap {getAp = []}
>>> fromInteger 0 :: Ap [] Int
Ap {getAp = [0]}
Distributivity: >>> Ap [1,2] * (3 + 4)
Ap {getAp = [7,14]}
>>> (Ap [1,2] * 3) + (Ap [1,2] * 4)
Ap {getAp = [7,11,10,14]}
Since: base-4.12.0.0 |
||||
Defined in GHC.Internal.Data.Monoid | |||||
| (Foldable1 f, Foldable1 g) => Foldable1 (Compose f g) Source | Since: base-4.18.0.0 |
||||
Defined in Data.Foldable1 Methodsfold1 :: Semigroup m => Compose f g m -> m Source foldMap1 :: Semigroup m => (a -> m) -> Compose f g a -> m Source foldMap1' :: Semigroup m => (a -> m) -> Compose f g a -> m Source toNonEmpty :: Compose f g a -> NonEmpty a Source maximum :: Ord a => Compose f g a -> a Source minimum :: Ord a => Compose f g a -> a Source head :: Compose f g a -> a Source last :: Compose f g a -> a Source foldrMap1 :: (a -> b) -> (a -> b -> b) -> Compose f g a -> b Source foldlMap1' :: (a -> b) -> (b -> a -> b) -> Compose f g a -> b Source foldlMap1 :: (a -> b) -> (b -> a -> b) -> Compose f g a -> b Source foldrMap1' :: (a -> b) -> (a -> b -> b) -> Compose f g a -> b Source | |||||
| (Foldable1 f, Foldable1 g) => Foldable1 (f :.: g) Source | Since: base-4.18.0.0 |
||||
Defined in Data.Foldable1 Methodsfold1 :: Semigroup m => (f :.: g) m -> m Source foldMap1 :: Semigroup m => (a -> m) -> (f :.: g) a -> m Source foldMap1' :: Semigroup m => (a -> m) -> (f :.: g) a -> m Source toNonEmpty :: (f :.: g) a -> NonEmpty a Source maximum :: Ord a => (f :.: g) a -> a Source minimum :: Ord a => (f :.: g) a -> a Source head :: (f :.: g) a -> a Source last :: (f :.: g) a -> a Source foldrMap1 :: (a -> b) -> (a -> b -> b) -> (f :.: g) a -> b Source foldlMap1' :: (a -> b) -> (b -> a -> b) -> (f :.: g) a -> b Source foldlMap1 :: (a -> b) -> (b -> a -> b) -> (f :.: g) a -> b Source foldrMap1' :: (a -> b) -> (a -> b -> b) -> (f :.: g) a -> b Source | |||||
| Foldable1 f => Foldable1 (M1 i c f) Source | Since: base-4.18.0.0 |
||||
Defined in Data.Foldable1 Methodsfold1 :: Semigroup m => M1 i c f m -> m Source foldMap1 :: Semigroup m => (a -> m) -> M1 i c f a -> m Source foldMap1' :: Semigroup m => (a -> m) -> M1 i c f a -> m Source toNonEmpty :: M1 i c f a -> NonEmpty a Source maximum :: Ord a => M1 i c f a -> a Source minimum :: Ord a => M1 i c f a -> a Source head :: M1 i c f a -> a Source last :: M1 i c f a -> a Source foldrMap1 :: (a -> b) -> (a -> b -> b) -> M1 i c f a -> b Source foldlMap1' :: (a -> b) -> (b -> a -> b) -> M1 i c f a -> b Source foldlMap1 :: (a -> b) -> (b -> a -> b) -> M1 i c f a -> b Source foldrMap1' :: (a -> b) -> (a -> b -> b) -> M1 i c f a -> b Source | |||||
| (Eq1 f, Eq1 g) => Eq1 (Compose f g) Source | Since: base-4.9.0.0 |
||||
| (Eq1 f, Eq1 g) => Eq1 (f :.: g) Source | Since: base-4.21.0.0 |
||||
| Eq1 f => Eq1 (M1 i c f) Source | Since: base-4.21.0.0 |
||||
| (Ord1 f, Ord1 g) => Ord1 (Compose f g) Source | Since: base-4.9.0.0 |
||||
Defined in Data.Functor.Compose | |||||
| (Ord1 f, Ord1 g) => Ord1 (f :.: g) Source | Since: base-4.21.0.0 |
||||
Defined in Data.Functor.Classes | |||||
| Ord1 f => Ord1 (M1 i c f) Source | Since: base-4.21.0.0 |
||||
Defined in Data.Functor.Classes | |||||
| (Read1 f, Read1 g) => Read1 (Compose f g) Source | Since: base-4.9.0.0 |
||||
Defined in Data.Functor.Compose MethodsliftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (Compose f g a) Source liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [Compose f g a] Source liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (Compose f g a) Source liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [Compose f g a] Source | |||||
| (Read1 f, Read1 g) => Read1 (f :.: g) Source | Since: base-4.21.0.0 |
||||
Defined in Data.Functor.Classes MethodsliftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS ((f :.: g) a) Source liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [(f :.: g) a] Source liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec ((f :.: g) a) Source liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [(f :.: g) a] Source | |||||
| Read1 f => Read1 (M1 i c f) Source | Since: base-4.21.0.0 |
||||
Defined in Data.Functor.Classes MethodsliftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (M1 i c f a) Source liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [M1 i c f a] Source liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (M1 i c f a) Source liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [M1 i c f a] Source | |||||
| (Show1 f, Show1 g) => Show1 (Compose f g) Source | Since: base-4.9.0.0 |
||||
| (Show1 f, Show1 g) => Show1 (f :.: g) Source | Since: base-4.21.0.0 |
||||
| Show1 f => Show1 (M1 i c f) Source | Since: base-4.21.0.0 |
||||
| (Functor f, Contravariant g) => Contravariant (Compose f g) Source | |||||
| (Functor f, Contravariant g) => Contravariant (f :.: g) Source | |||||
| Contravariant f => Contravariant (M1 i c f) Source | |||||
| (Alternative f, Applicative g) => Alternative (Compose f g) Source | Since: base-4.9.0.0 |
||||
| (Alternative f, Applicative g) => Alternative (f :.: g) Source | Since: base-4.9.0.0 |
||||
| Alternative f => Alternative (M1 i c f) Source | Since: base-4.9.0.0 |
||||
| (Applicative f, Applicative g) => Applicative (Compose f g) Source | Since: base-4.9.0.0 |
||||
Defined in Data.Functor.Compose Methodspure :: a -> Compose f g a Source (<*>) :: Compose f g (a -> b) -> Compose f g a -> Compose f g b Source liftA2 :: (a -> b -> c) -> Compose f g a -> Compose f g b -> Compose f g c Source (*>) :: Compose f g a -> Compose f g b -> Compose f g b Source (<*) :: Compose f g a -> Compose f g b -> Compose f g a Source | |||||
| (Applicative f, Applicative g) => Applicative (f :.: g) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Generics | |||||
| Applicative f => Applicative (M1 i c f) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Generics | |||||
| (Functor f, Functor g) => Functor (Compose f g) Source | Since: base-4.9.0.0 |
||||
| (Functor f, Functor g) => Functor (f :.: g) Source | Since: base-4.9.0.0 |
||||
| Functor f => Functor (M1 i c f) Source | Since: base-4.9.0.0 |
||||
| Monad f => Monad (M1 i c f) Source | Since: base-4.9.0.0 |
||||
| MonadPlus f => MonadPlus (M1 i c f) Source | Since: base-4.9.0.0 |
||||
| MonadFix f => MonadFix (M1 i c f) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Control.Monad.Fix | |||||
| MonadZip f => MonadZip (M1 i c f) Source | Since: ghc-internal-4.9.0.0 |
||||
| (Typeable f, Typeable g, Data p, Data (f p), Data (g p)) => Data ((f :*: g) p) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Data Methodsgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g0. g0 -> c g0) -> (f :*: g) p -> c ((f :*: g) p) Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ((f :*: g) p) Source toConstr :: (f :*: g) p -> Constr Source dataTypeOf :: (f :*: g) p -> DataType Source dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ((f :*: g) p)) Source dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ((f :*: g) p)) Source gmapT :: (forall b. Data b => b -> b) -> (f :*: g) p -> (f :*: g) p Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> (f :*: g) p -> r Source gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> (f :*: g) p -> r Source gmapQ :: (forall d. Data d => d -> u) -> (f :*: g) p -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> (f :*: g) p -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> (f :*: g) p -> m ((f :*: g) p) Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> (f :*: g) p -> m ((f :*: g) p) Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> (f :*: g) p -> m ((f :*: g) p) Source | |||||
| (Typeable f, Typeable g, Data p, Data (f p), Data (g p)) => Data ((f :+: g) p) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Data Methodsgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g0. g0 -> c g0) -> (f :+: g) p -> c ((f :+: g) p) Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ((f :+: g) p) Source toConstr :: (f :+: g) p -> Constr Source dataTypeOf :: (f :+: g) p -> DataType Source dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ((f :+: g) p)) Source dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ((f :+: g) p)) Source gmapT :: (forall b. Data b => b -> b) -> (f :+: g) p -> (f :+: g) p Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> (f :+: g) p -> r Source gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> (f :+: g) p -> r Source gmapQ :: (forall d. Data d => d -> u) -> (f :+: g) p -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> (f :+: g) p -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> (f :+: g) p -> m ((f :+: g) p) Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> (f :+: g) p -> m ((f :+: g) p) Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> (f :+: g) p -> m ((f :+: g) p) Source | |||||
| (Typeable i, Data p, Data c) => Data (K1 i c p) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Data Methodsgfoldl :: (forall d b. Data d => c0 (d -> b) -> d -> c0 b) -> (forall g. g -> c0 g) -> K1 i c p -> c0 (K1 i c p) Source gunfold :: (forall b r. Data b => c0 (b -> r) -> c0 r) -> (forall r. r -> c0 r) -> Constr -> c0 (K1 i c p) Source toConstr :: K1 i c p -> Constr Source dataTypeOf :: K1 i c p -> DataType Source dataCast1 :: Typeable t => (forall d. Data d => c0 (t d)) -> Maybe (c0 (K1 i c p)) Source dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c0 (t d e)) -> Maybe (c0 (K1 i c p)) Source gmapT :: (forall b. Data b => b -> b) -> K1 i c p -> K1 i c p Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> K1 i c p -> r Source gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> K1 i c p -> r Source gmapQ :: (forall d. Data d => d -> u) -> K1 i c p -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> K1 i c p -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> K1 i c p -> m (K1 i c p) Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> K1 i c p -> m (K1 i c p) Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> K1 i c p -> m (K1 i c p) Source | |||||
| (Foldable f, Foldable g) => Foldable (Compose f g) Source | Since: base-4.9.0.0 |
||||
Defined in Data.Functor.Compose Methodsfold :: Monoid m => Compose f g m -> m Source foldMap :: Monoid m => (a -> m) -> Compose f g a -> m Source foldMap' :: Monoid m => (a -> m) -> Compose f g a -> m Source foldr :: (a -> b -> b) -> b -> Compose f g a -> b Source foldr' :: (a -> b -> b) -> b -> Compose f g a -> b Source foldl :: (b -> a -> b) -> b -> Compose f g a -> b Source foldl' :: (b -> a -> b) -> b -> Compose f g a -> b Source foldr1 :: (a -> a -> a) -> Compose f g a -> a Source foldl1 :: (a -> a -> a) -> Compose f g a -> a Source toList :: Compose f g a -> [a] Source null :: Compose f g a -> Bool Source length :: Compose f g a -> Int Source elem :: Eq a => a -> Compose f g a -> Bool Source maximum :: Ord a => Compose f g a -> a Source minimum :: Ord a => Compose f g a -> a Source | |||||
| (Foldable f, Foldable g) => Foldable (f :.: g) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Foldable Methodsfold :: Monoid m => (f :.: g) m -> m Source foldMap :: Monoid m => (a -> m) -> (f :.: g) a -> m Source foldMap' :: Monoid m => (a -> m) -> (f :.: g) a -> m Source foldr :: (a -> b -> b) -> b -> (f :.: g) a -> b Source foldr' :: (a -> b -> b) -> b -> (f :.: g) a -> b Source foldl :: (b -> a -> b) -> b -> (f :.: g) a -> b Source foldl' :: (b -> a -> b) -> b -> (f :.: g) a -> b Source foldr1 :: (a -> a -> a) -> (f :.: g) a -> a Source foldl1 :: (a -> a -> a) -> (f :.: g) a -> a Source toList :: (f :.: g) a -> [a] Source null :: (f :.: g) a -> Bool Source length :: (f :.: g) a -> Int Source elem :: Eq a => a -> (f :.: g) a -> Bool Source maximum :: Ord a => (f :.: g) a -> a Source minimum :: Ord a => (f :.: g) a -> a Source | |||||
| Foldable f => Foldable (M1 i c f) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Foldable Methodsfold :: Monoid m => M1 i c f m -> m Source foldMap :: Monoid m => (a -> m) -> M1 i c f a -> m Source foldMap' :: Monoid m => (a -> m) -> M1 i c f a -> m Source foldr :: (a -> b -> b) -> b -> M1 i c f a -> b Source foldr' :: (a -> b -> b) -> b -> M1 i c f a -> b Source foldl :: (b -> a -> b) -> b -> M1 i c f a -> b Source foldl' :: (b -> a -> b) -> b -> M1 i c f a -> b Source foldr1 :: (a -> a -> a) -> M1 i c f a -> a Source foldl1 :: (a -> a -> a) -> M1 i c f a -> a Source toList :: M1 i c f a -> [a] Source null :: M1 i c f a -> Bool Source length :: M1 i c f a -> Int Source elem :: Eq a => a -> M1 i c f a -> Bool Source maximum :: Ord a => M1 i c f a -> a Source minimum :: Ord a => M1 i c f a -> a Source | |||||
| (Traversable f, Traversable g) => Traversable (Compose f g) Source | Since: base-4.9.0.0 |
||||
Defined in Data.Functor.Compose Methodstraverse :: Applicative f0 => (a -> f0 b) -> Compose f g a -> f0 (Compose f g b) Source sequenceA :: Applicative f0 => Compose f g (f0 a) -> f0 (Compose f g a) Source mapM :: Monad m => (a -> m b) -> Compose f g a -> m (Compose f g b) Source sequence :: Monad m => Compose f g (m a) -> m (Compose f g a) Source | |||||
| (Traversable f, Traversable g) => Traversable (f :.: g) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Traversable Methodstraverse :: Applicative f0 => (a -> f0 b) -> (f :.: g) a -> f0 ((f :.: g) b) Source sequenceA :: Applicative f0 => (f :.: g) (f0 a) -> f0 ((f :.: g) a) Source mapM :: Monad m => (a -> m b) -> (f :.: g) a -> m ((f :.: g) b) Source sequence :: Monad m => (f :.: g) (m a) -> m ((f :.: g) a) Source | |||||
| Traversable f => Traversable (M1 i c f) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Traversable | |||||
| (Typeable f, Typeable g, Data p, Data (f (g p))) => Data ((f :.: g) p) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Data Methodsgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g0. g0 -> c g0) -> (f :.: g) p -> c ((f :.: g) p) Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ((f :.: g) p) Source toConstr :: (f :.: g) p -> Constr Source dataTypeOf :: (f :.: g) p -> DataType Source dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ((f :.: g) p)) Source dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ((f :.: g) p)) Source gmapT :: (forall b. Data b => b -> b) -> (f :.: g) p -> (f :.: g) p Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> (f :.: g) p -> r Source gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> (f :.: g) p -> r Source gmapQ :: (forall d. Data d => d -> u) -> (f :.: g) p -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> (f :.: g) p -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> (f :.: g) p -> m ((f :.: g) p) Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> (f :.: g) p -> m ((f :.: g) p) Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> (f :.: g) p -> m ((f :.: g) p) Source | |||||
| (Data p, Data (f p), Typeable c, Typeable i, Typeable f) => Data (M1 i c f p) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Data.Data Methodsgfoldl :: (forall d b. Data d => c0 (d -> b) -> d -> c0 b) -> (forall g. g -> c0 g) -> M1 i c f p -> c0 (M1 i c f p) Source gunfold :: (forall b r. Data b => c0 (b -> r) -> c0 r) -> (forall r. r -> c0 r) -> Constr -> c0 (M1 i c f p) Source toConstr :: M1 i c f p -> Constr Source dataTypeOf :: M1 i c f p -> DataType Source dataCast1 :: Typeable t => (forall d. Data d => c0 (t d)) -> Maybe (c0 (M1 i c f p)) Source dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c0 (t d e)) -> Maybe (c0 (M1 i c f p)) Source gmapT :: (forall b. Data b => b -> b) -> M1 i c f p -> M1 i c f p Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> M1 i c f p -> r Source gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> M1 i c f p -> r Source gmapQ :: (forall d. Data d => d -> u) -> M1 i c f p -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> M1 i c f p -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> M1 i c f p -> m (M1 i c f p) Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> M1 i c f p -> m (M1 i c f p) Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> M1 i c f p -> m (M1 i c f p) Source | |||||
| type Rep1 Complex Source | Since: base-4.9.0.0 |
||||
Defined in Data.Complex type Rep1 Complex = D1 ('MetaData "Complex" "Data.Complex" "base-4.21.0.0-8e62" 'False) (C1 ('MetaCons ":+" ('InfixI 'NotAssociative 6) 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) Par1 :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) Par1)) | |||||
| type Rep1 First Source | Since: base-4.9.0.0 |
||||
Defined in Data.Semigroup | |||||
| type Rep1 Last Source | Since: base-4.9.0.0 |
||||
Defined in Data.Semigroup | |||||
| type Rep1 Max Source | Since: base-4.9.0.0 |
||||
Defined in Data.Semigroup | |||||
| type Rep1 Min Source | Since: base-4.9.0.0 |
||||
Defined in Data.Semigroup | |||||
| type Rep1 WrappedMonoid Source | Since: base-4.9.0.0 |
||||
Defined in Data.Semigroup type Rep1 WrappedMonoid = D1 ('MetaData "WrappedMonoid" "Data.Semigroup" "base-4.21.0.0-8e62" 'True) (C1 ('MetaCons "WrapMonoid" 'PrefixI 'True) (S1 ('MetaSel ('Just "unwrapMonoid") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)) | |||||
| type Rep1 NonEmpty Source | Since: base-4.6.0.0 |
||||
Defined in GHC.Internal.Generics type Rep1 NonEmpty = D1 ('MetaData "NonEmpty" "GHC.Internal.Base" "ghc-internal" 'False) (C1 ('MetaCons ":|" ('InfixI 'RightAssociative 5) 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1 :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 []))) | |||||
| type Rep1 Identity Source | Since: base-4.8.0.0 |
||||
Defined in GHC.Internal.Data.Functor.Identity | |||||
| type Rep1 First Source | Since: base-4.7.0.0 |
||||
Defined in GHC.Internal.Data.Monoid | |||||
| type Rep1 Last Source | Since: base-4.7.0.0 |
||||
Defined in GHC.Internal.Data.Monoid | |||||
| type Rep1 Down Source | Since: base-4.12.0.0 |
||||
Defined in GHC.Internal.Generics | |||||
| type Rep1 Dual Source | Since: base-4.7.0.0 |
||||
Defined in GHC.Internal.Data.Semigroup.Internal | |||||
| type Rep1 Product Source | Since: base-4.7.0.0 |
||||
Defined in GHC.Internal.Data.Semigroup.Internal | |||||
| type Rep1 Sum Source | Since: base-4.7.0.0 |
||||
Defined in GHC.Internal.Data.Semigroup.Internal | |||||
| type Rep1 ZipList Source | Since: base-4.7.0.0 |
||||
Defined in GHC.Internal.Functor.ZipList | |||||
| type Rep1 Par1 Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Generics | |||||
| type Rep1 Maybe Source | Since: base-4.6.0.0 |
||||
Defined in GHC.Internal.Generics | |||||
| type Rep1 Solo Source | Since: base-4.15 |
||||
Defined in GHC.Internal.Generics | |||||
| type Rep1 [] Source | Since: base-4.6.0.0 |
||||
Defined in GHC.Internal.Generics type Rep1 [] = D1 ('MetaData "List" "GHC.Types" "ghc-prim" 'False) (C1 ('MetaCons "[]" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons ":" ('InfixI 'RightAssociative 5) 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1 :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 []))) | |||||
| type Rep1 (WrappedMonad m :: Type -> Type) Source | Since: base-4.7.0.0 |
||||
Defined in Control.Applicative type Rep1 (WrappedMonad m :: Type -> Type) = D1 ('MetaData "WrappedMonad" "Control.Applicative" "base-4.21.0.0-8e62" 'True) (C1 ('MetaCons "WrapMonad" 'PrefixI 'True) (S1 ('MetaSel ('Just "unwrapMonad") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 m))) | |||||
| type Rep1 (Arg a :: Type -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in Data.Semigroup type Rep1 (Arg a :: Type -> Type) = D1 ('MetaData "Arg" "Data.Semigroup" "base-4.21.0.0-8e62" 'False) (C1 ('MetaCons "Arg" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)) | |||||
| type Rep1 (Either a :: Type -> Type) Source | Since: base-4.6.0.0 |
||||
Defined in GHC.Internal.Generics type Rep1 (Either a :: Type -> Type) = D1 ('MetaData "Either" "GHC.Internal.Data.Either" "ghc-internal" 'False) (C1 ('MetaCons "Left" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "Right" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)) | |||||
| type Rep1 ((,) a :: Type -> Type) Source | Since: base-4.6.0.0 |
||||
Defined in GHC.Internal.Generics type Rep1 ((,) a :: Type -> Type) = D1 ('MetaData "Tuple2" "GHC.Tuple" "ghc-prim" 'False) (C1 ('MetaCons "(,)" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)) | |||||
| type Rep1 (WrappedArrow a b :: Type -> Type) Source | Since: base-4.7.0.0 |
||||
Defined in Control.Applicative type Rep1 (WrappedArrow a b :: Type -> Type) = D1 ('MetaData "WrappedArrow" "Control.Applicative" "base-4.21.0.0-8e62" 'True) (C1 ('MetaCons "WrapArrow" 'PrefixI 'True) (S1 ('MetaSel ('Just "unwrapArrow") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 (a b)))) | |||||
| type Rep1 (Kleisli m a :: Type -> Type) Source | Since: base-4.14.0.0 |
||||
Defined in GHC.Internal.Control.Arrow | |||||
| type Rep1 ((,,) a b :: Type -> Type) Source | Since: base-4.6.0.0 |
||||
Defined in GHC.Internal.Generics type Rep1 ((,,) a b :: Type -> Type) = D1 ('MetaData "Tuple3" "GHC.Tuple" "ghc-prim" 'False) (C1 ('MetaCons "(,,)" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))) | |||||
| type Rep1 ((,,,) a b c :: Type -> Type) Source | Since: base-4.6.0.0 |
||||
Defined in GHC.Internal.Generics type Rep1 ((,,,) a b c :: Type -> Type) = D1 ('MetaData "Tuple4" "GHC.Tuple" "ghc-prim" 'False) (C1 ('MetaCons "(,,,)" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))) | |||||
| type Rep1 ((,,,,) a b c d :: Type -> Type) Source | Since: base-4.6.0.0 |
||||
Defined in GHC.Internal.Generics type Rep1 ((,,,,) a b c d :: Type -> Type) = D1 ('MetaData "Tuple5" "GHC.Tuple" "ghc-prim" 'False) (C1 ('MetaCons "(,,,,)" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)))) | |||||
| type Rep1 (Compose f g :: k -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in Data.Functor.Compose | |||||
| type Rep1 (f :.: g :: k -> Type) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.Generics | |||||
| type Rep1 ((,,,,,) a b c d e :: Type -> Type) Source | Since: base-4.6.0.0 |
||||
Defined in GHC.Internal.Generics type Rep1 ((,,,,,) a b c d e :: Type -> Type) = D1 ('MetaData "Tuple6" "GHC.Tuple" "ghc-prim" 'False) (C1 ('MetaCons "(,,,,,)" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 e) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)))) | |||||
| type Rep1 ((,,,,,,) a b c d e f :: Type -> Type) Source | Since: base-4.6.0.0 |
||||
Defined in GHC.Internal.Generics type Rep1 ((,,,,,,) a b c d e f :: Type -> Type) = D1 ('MetaData "Tuple7" "GHC.Tuple" "ghc-prim" 'False) (C1 ('MetaCons "(,,,,,,)" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c))) :*: ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 e)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 f) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)))) | |||||
| type Rep1 ((,,,,,,,) a b c d e f g :: Type -> Type) Source | Since: base-4.16.0.0 |
||||
Defined in GHC.Internal.Generics type Rep1 ((,,,,,,,) a b c d e f g :: Type -> Type) = D1 ('MetaData "Tuple8" "GHC.Tuple" "ghc-prim" 'False) (C1 ('MetaCons "(,,,,,,,)" 'PrefixI 'False) (((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d))) :*: ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 e) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 f)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 g) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)))) | |||||
| type Rep1 ((,,,,,,,,) a b c d e f g h :: Type -> Type) Source | Since: base-4.16.0.0 |
||||
Defined in GHC.Internal.Generics type Rep1 ((,,,,,,,,) a b c d e f g h :: Type -> Type) = D1 ('MetaData "Tuple9" "GHC.Tuple" "ghc-prim" 'False) (C1 ('MetaCons "(,,,,,,,,)" 'PrefixI 'False) (((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d))) :*: ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 e) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 f)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 g) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 h) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))))) | |||||
| type Rep1 ((,,,,,,,,,) a b c d e f g h i :: Type -> Type) Source | Since: base-4.16.0.0 |
||||
Defined in GHC.Internal.Generics type Rep1 ((,,,,,,,,,) a b c d e f g h i :: Type -> Type) = D1 ('MetaData "Tuple10" "GHC.Tuple" "ghc-prim" 'False) (C1 ('MetaCons "(,,,,,,,,,)" 'PrefixI 'False) (((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 e)))) :*: ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 f) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 g)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 h) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 i) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))))) | |||||
| type Rep1 ((,,,,,,,,,,) a b c d e f g h i j :: Type -> Type) Source | Since: base-4.16.0.0 |
||||
Defined in GHC.Internal.Generics type Rep1 ((,,,,,,,,,,) a b c d e f g h i j :: Type -> Type) = D1 ('MetaData "Tuple11" "GHC.Tuple" "ghc-prim" 'False) (C1 ('MetaCons "(,,,,,,,,,,)" 'PrefixI 'False) (((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 e)))) :*: ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 f) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 g) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 h))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 i) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 j) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))))) | |||||
| type Rep1 ((,,,,,,,,,,,) a b c d e f g h i j k :: Type -> Type) Source | Since: base-4.16.0.0 |
||||
Defined in GHC.Internal.Generics type Rep1 ((,,,,,,,,,,,) a b c d e f g h i j k :: Type -> Type) = D1 ('MetaData "Tuple12" "GHC.Tuple" "ghc-prim" 'False) (C1 ('MetaCons "(,,,,,,,,,,,)" 'PrefixI 'False) (((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 e) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 f)))) :*: ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 g) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 h) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 i))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 j) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 k) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))))) | |||||
| type Rep1 ((,,,,,,,,,,,,) a b c d e f g h i j k l :: Type -> Type) Source | Since: base-4.16.0.0 |
||||
Defined in GHC.Internal.Generics type Rep1 ((,,,,,,,,,,,,) a b c d e f g h i j k l :: Type -> Type) = D1 ('MetaData "Tuple13" "GHC.Tuple" "ghc-prim" 'False) (C1 ('MetaCons "(,,,,,,,,,,,,)" 'PrefixI 'False) (((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 e) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 f)))) :*: ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 g) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 h) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 i))) :*: ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 j) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 k)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 l) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))))) | |||||
| type Rep1 ((,,,,,,,,,,,,,) a b c d e f g h i j k l m :: Type -> Type) Source | Since: base-4.16.0.0 |
||||
Defined in GHC.Internal.Generics type Rep1 ((,,,,,,,,,,,,,) a b c d e f g h i j k l m :: Type -> Type) = D1 ('MetaData "Tuple14" "GHC.Tuple" "ghc-prim" 'False) (C1 ('MetaCons "(,,,,,,,,,,,,,)" 'PrefixI 'False) (((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c))) :*: ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 e)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 f) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 g)))) :*: ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 h) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 i) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 j))) :*: ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 k) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 l)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 m) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))))) | |||||
| type Rep1 ((,,,,,,,,,,,,,,) a b c d e f g h i j k l m n :: Type -> Type) Source | Since: base-4.16.0.0 |
||||
Defined in GHC.Internal.Generics type Rep1 ((,,,,,,,,,,,,,,) a b c d e f g h i j k l m n :: Type -> Type) = D1 ('MetaData "Tuple15" "GHC.Tuple" "ghc-prim" 'False) (C1 ('MetaCons "(,,,,,,,,,,,,,,)" 'PrefixI 'False) (((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c))) :*: ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 e)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 f) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 g)))) :*: (((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 h) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 i)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 j) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 k))) :*: ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 l) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 m)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 n) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))))) | |||||
data ThreadId# :: UnliftedType Source
(In a non-concurrent implementation, this can be a singleton type, whose (unique) value is returned by myThreadId#. The other operations can be omitted.)
data Weak# (a :: TYPE ('BoxedRep l)) :: UnliftedType Source
data Word# :: TYPE 'WordRep Source
data Word16# :: TYPE 'Word16Rep Source
data Word16X16# :: TYPE ('VecRep 'Vec16 'Word16ElemRep) Source
data Word16X32# :: TYPE ('VecRep 'Vec32 'Word16ElemRep) Source
data Word16X8# :: TYPE ('VecRep 'Vec8 'Word16ElemRep) Source
data Word32# :: TYPE 'Word32Rep Source
data Word32X16# :: TYPE ('VecRep 'Vec16 'Word32ElemRep) Source
data Word32X4# :: TYPE ('VecRep 'Vec4 'Word32ElemRep) Source
data Word32X8# :: TYPE ('VecRep 'Vec8 'Word32ElemRep) Source
data Word64# :: TYPE 'Word64Rep Source
data Word64X2# :: TYPE ('VecRep 'Vec2 'Word64ElemRep) Source
data Word64X4# :: TYPE ('VecRep 'Vec4 'Word64ElemRep) Source
data Word64X8# :: TYPE ('VecRep 'Vec8 'Word64ElemRep) Source
data Word8# :: TYPE 'Word8Rep Source
data Word8X16# :: TYPE ('VecRep 'Vec16 'Word8ElemRep) Source
data Word8X32# :: TYPE ('VecRep 'Vec32 'Word8ElemRep) Source
data Word8X64# :: TYPE ('VecRep 'Vec64 'Word8ElemRep) Source
module GHC.Prim.Ext
RealWorld state threadrunRW# :: (State# RealWorld -> o) -> o Source
Apply a function to a State# RealWorld token. When manually applying a function to realWorld#, it is necessary to use NOINLINE to prevent semantically undesirable floating. runRW# is inlined, but only very late in compilation after all floating is complete.
shiftL# :: Word# -> Int# -> Word# Source
Shift the argument left by the specified number of bits (which must be non-negative).
shiftRL# :: Word# -> Int# -> Word# Source
Shift the argument right by the specified number of bits (which must be non-negative). The RL means "right, logical" (as opposed to RA for arithmetic) (although an arithmetic right shift wouldn't make sense for Word#)
iShiftL# :: Int# -> Int# -> Int# Source
Shift the argument left by the specified number of bits (which must be non-negative).
iShiftRA# :: Int# -> Int# -> Int# Source
Shift the argument right (signed) by the specified number of bits (which must be non-negative). The RA means "right, arithmetic" (as opposed to RL for logical)
iShiftRL# :: Int# -> Int# -> Int# Source
Shift the argument right (unsigned) by the specified number of bits (which must be non-negative). The RL means "right, logical" (as opposed to RA for arithmetic)
reallyUnsafePtrEquality :: a -> a -> Int# Source
Compare the underlying pointers of two values for equality.
Returns 1 if the pointers are equal and 0 otherwise.
The two values must be of the same type, of kind Type. See also reallyUnsafePtrEquality#, which doesn't have such restrictions.
unsafePtrEquality# :: forall (a :: UnliftedType) (b :: UnliftedType). a -> b -> Int# Source
Compare the underlying pointers of two unlifted values for equality.
This is less dangerous than reallyUnsafePtrEquality, since the arguments are guaranteed to be evaluated. This means there is no risk of accidentally comparing a thunk. It's however still more dangerous than e.g. sameArray#.
eqStableName# :: forall {k :: Levity} {l :: Levity} (a :: TYPE ('BoxedRep k)) (b :: TYPE ('BoxedRep l)). StableName# a -> StableName# b -> Int# Source
Compare two stable names for equality.
sameArray# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)). Array# a -> Array# a -> Int# Source
Compare the underlying pointers of two arrays.
sameMutableArray# :: forall {l :: Levity} s (a :: TYPE ('BoxedRep l)). MutableArray# s a -> MutableArray# s a -> Int# Source
Compare the underlying pointers of two mutable arrays.
sameSmallArray# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)). SmallArray# a -> SmallArray# a -> Int# Source
Compare the underlying pointers of two small arrays.
sameSmallMutableArray# :: forall {l :: Levity} s (a :: TYPE ('BoxedRep l)). SmallMutableArray# s a -> SmallMutableArray# s a -> Int# Source
Compare the underlying pointers of two small mutable arrays.
sameByteArray# :: ByteArray# -> ByteArray# -> Int# Source
Compare the pointers of two byte arrays.
sameMutableByteArray# :: MutableByteArray# s -> MutableByteArray# s -> Int# Source
Compare the underlying pointers of two mutable byte arrays.
sameMVar# :: forall {l :: Levity} s (a :: TYPE ('BoxedRep l)). MVar# s a -> MVar# s a -> Int# Source
Compare the underlying pointers of two MVar#s.
sameMutVar# :: forall {l :: Levity} s (a :: TYPE ('BoxedRep l)). MutVar# s a -> MutVar# s a -> Int# Source
Compare the underlying pointers of two MutVar#s.
sameTVar# :: forall {l :: Levity} s (a :: TYPE ('BoxedRep l)). TVar# s a -> TVar# s a -> Int# Source
Compare the underlying pointers of two TVar#s.
sameIOPort# :: forall {l :: Levity} s (a :: TYPE ('BoxedRep l)). IOPort# s a -> IOPort# s a -> Int# Source
Compare the underlying pointers of two IOPort#s.
samePromptTag# :: PromptTag# a -> PromptTag# a -> Int# Source
Compare the underlying pointers of two PromptTag#s.
atomicModifyMutVar# :: MutVar# s a -> (a -> b) -> State# s -> (# State# s, c #) Source
An implementation of the old atomicModifyMutVar# primop in terms of the new atomicModifyMutVar2# primop, for backwards compatibility. The type of this function is a bit bogus. It's best to think of it as having type
atomicModifyMutVar# :: MutVar# s a -> (a -> (a, b)) -> State# s -> (# State# s, b #)
but there may be code that uses this with other two-field record types.
Resizing arrays of boxed elements is currently handled in library space (rather than being a primop) since there is not an efficient way to grow arrays. However, resize operations may become primops in a future release of GHC.
resizeSmallMutableArray# Source
| :: SmallMutableArray# s a | Array to resize |
| -> Int# | New size of array |
| -> a | Newly created slots initialized to this element. Only used when array is grown. |
| -> State# s | |
| -> (# State# s, SmallMutableArray# s a #) |
Resize a mutable array to new specified size. The returned SmallMutableArray# is either the original SmallMutableArray# resized in-place or, if not possible, a newly allocated SmallMutableArray# with the original content copied over.
To avoid undefined behaviour, the original SmallMutableArray# shall not be accessed anymore after a resizeSmallMutableArray# has been performed. Moreover, no reference to the old one should be kept in order to allow garbage collection of the original SmallMutableArray# in case a new SmallMutableArray# had to be allocated.
Since: base-4.14.0.0
build :: (forall b. (a -> b -> b) -> b -> b) -> [a] Source
A list producer that can be fused with foldr. This function is merely
build g = g (:) []
but GHC's simplifier will transform an expression of the form foldr k z (build g), which may arise after inlining, to g k z, which avoids producing an intermediate list.
augment :: (forall b. (a -> b -> b) -> b -> b) -> [a] -> [a] Source
A list producer that can be fused with foldr. This function is merely
augment g xs = g (:) xs
but GHC's simplifier will transform an expression of the form foldr k z (augment g xs), which may arise after inlining, to g k (foldr k z xs), which avoids producing an intermediate list.
The IsList class and its methods are intended to be used in conjunction with the OverloadedLists extension.
Since: base-4.7.0.0
The Item type function returns the type of items of the structure l.
fromList :: [Item l] -> l Source
The fromList function constructs the structure l from the given list of Item l
fromListN :: Int -> [Item l] -> l Source
The fromListN function takes the input list's length and potentially uses it to construct the structure l more efficiently compared to fromList. If the given number does not equal to the input list's length the behaviour of fromListN is not specified.
fromListN (length xs) xs == fromList xs
toList :: l -> [Item l] Source
The toList function extracts a list of Item l from the structure l. It should satisfy fromList . toList = id.
| IsList ByteArray Source | Since: base-4.17.0.0 |
||||
| IsList Version Source | Since: base-4.8.0.0 |
||||
| IsList CallStack Source |
Be aware that 'fromList . toList = id' only for unfrozen Since: base-4.9.0.0 |
||||
| IsList (NonEmpty a) Source | Since: base-4.9.0.0 |
||||
Defined in GHC.Internal.IsList Associated Types
| |||||
| IsList (ZipList a) Source | Since: base-4.15.0.0 |
||||
| IsList [a] Source | Since: base-4.7.0.0 |
||||
The Down type allows you to reverse sort order conveniently. A value of type Down a contains a value of type a (represented as Down a).
If a has an Ord instance associated with it then comparing two values thus wrapped will give you the opposite of their normal sort order. This is particularly useful when sorting in generalised list comprehensions, as in: then sortWith by Down x.
>>> compare True False GT
>>> compare (Down True) (Down False) LT
If a has a Bounded instance then the wrapped instance also respects the reversed ordering by exchanging the values of minBound and maxBound.
>>> minBound :: Int -9223372036854775808
>>> minBound :: Down Int Down 9223372036854775807
All other instances of Down a behave as they do for a.
Since: base-4.6.0.0
| Foldable1 Down Source | Since: base-4.18.0.0 |
||||
Defined in Data.Foldable1 Methodsfold1 :: Semigroup m => Down m -> m Source foldMap1 :: Semigroup m => (a -> m) -> Down a -> m Source foldMap1' :: Semigroup m => (a -> m) -> Down a -> m Source toNonEmpty :: Down a -> NonEmpty a Source maximum :: Ord a => Down a -> a Source minimum :: Ord a => Down a -> a Source foldrMap1 :: (a -> b) -> (a -> b -> b) -> Down a -> b Source foldlMap1' :: (a -> b) -> (b -> a -> b) -> Down a -> b Source foldlMap1 :: (a -> b) -> (b -> a -> b) -> Down a -> b Source foldrMap1' :: (a -> b) -> (a -> b -> b) -> Down a -> b Source | |||||
| Eq1 Down Source | Since: base-4.12.0.0 |
||||
| Ord1 Down Source | Since: base-4.12.0.0 |
||||
Defined in Data.Functor.Classes | |||||
| Read1 Down Source | Since: base-4.12.0.0 |
||||
Defined in Data.Functor.Classes MethodsliftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (Down a) Source liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [Down a] Source liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (Down a) Source liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [Down a] Source | |||||
| Show1 Down Source | Since: base-4.12.0.0 |
||||
| Applicative Down Source | Since: base-4.11.0.0 |
||||
| Functor Down Source | Since: base-4.11.0.0 |
||||
| Monad Down Source | Since: base-4.11.0.0 |
||||
| MonadFix Down Source | Since: base-4.12.0.0 |
||||
Defined in GHC.Internal.Control.Monad.Fix | |||||
| MonadZip Down Source | Since: ghc-internal-4.12.0.0 |
||||
| Foldable Down Source | Since: base-4.12.0.0 |
||||
Defined in GHC.Internal.Data.Foldable Methodsfold :: Monoid m => Down m -> m Source foldMap :: Monoid m => (a -> m) -> Down a -> m Source foldMap' :: Monoid m => (a -> m) -> Down a -> m Source foldr :: (a -> b -> b) -> b -> Down a -> b Source foldr' :: (a -> b -> b) -> b -> Down a -> b Source foldl :: (b -> a -> b) -> b -> Down a -> b Source foldl' :: (b -> a -> b) -> b -> Down a -> b Source foldr1 :: (a -> a -> a) -> Down a -> a Source foldl1 :: (a -> a -> a) -> Down a -> a Source toList :: Down a -> [a] Source length :: Down a -> Int Source elem :: Eq a => a -> Down a -> Bool Source maximum :: Ord a => Down a -> a Source minimum :: Ord a => Down a -> a Source | |||||
| Traversable Down Source | Since: base-4.12.0.0 |
||||
| Generic1 Down Source | |||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| Monoid a => Monoid (Down a) Source | Since: base-4.11.0.0 |
||||
| Semigroup a => Semigroup (Down a) Source | Since: base-4.11.0.0 |
||||
| Bits a => Bits (Down a) Source | Since: base-4.14.0.0 |
||||
Defined in GHC.Internal.Data.Ord Methods(.&.) :: Down a -> Down a -> Down a Source (.|.) :: Down a -> Down a -> Down a Source xor :: Down a -> Down a -> Down a Source complement :: Down a -> Down a Source shift :: Down a -> Int -> Down a Source rotate :: Down a -> Int -> Down a Source setBit :: Down a -> Int -> Down a Source clearBit :: Down a -> Int -> Down a Source complementBit :: Down a -> Int -> Down a Source testBit :: Down a -> Int -> Bool Source bitSizeMaybe :: Down a -> Maybe Int Source bitSize :: Down a -> Int Source isSigned :: Down a -> Bool Source shiftL :: Down a -> Int -> Down a Source unsafeShiftL :: Down a -> Int -> Down a Source shiftR :: Down a -> Int -> Down a Source unsafeShiftR :: Down a -> Int -> Down a Source rotateL :: Down a -> Int -> Down a Source | |||||
| FiniteBits a => FiniteBits (Down a) Source | Since: base-4.14.0.0 |
||||
Defined in GHC.Internal.Data.Ord MethodsfiniteBitSize :: Down a -> Int Source countLeadingZeros :: Down a -> Int Source countTrailingZeros :: Down a -> Int Source | |||||
| Data a => Data (Down a) Source | Since: base-4.12.0.0 |
||||
Defined in GHC.Internal.Data.Data Methodsgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Down a -> c (Down a) Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Down a) Source toConstr :: Down a -> Constr Source dataTypeOf :: Down a -> DataType Source dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Down a)) Source dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Down a)) Source gmapT :: (forall b. Data b => b -> b) -> Down a -> Down a Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Down a -> r Source gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Down a -> r Source gmapQ :: (forall d. Data d => d -> u) -> Down a -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> Down a -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> Down a -> m (Down a) Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Down a -> m (Down a) Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Down a -> m (Down a) Source | |||||
| Bounded a => Bounded (Down a) Source |
Swaps Since: base-4.14.0.0 |
||||
| (Enum a, Bounded a, Eq a) => Enum (Down a) Source |
Swaps Since: base-4.18.0.0 |
||||
Defined in GHC.Internal.Data.Ord Methodssucc :: Down a -> Down a Source pred :: Down a -> Down a Source toEnum :: Int -> Down a Source fromEnum :: Down a -> Int Source enumFrom :: Down a -> [Down a] Source enumFromThen :: Down a -> Down a -> [Down a] Source enumFromTo :: Down a -> Down a -> [Down a] Source enumFromThenTo :: Down a -> Down a -> Down a -> [Down a] Source | |||||
| Floating a => Floating (Down a) Source | Since: base-4.14.0.0 |
||||
Defined in GHC.Internal.Data.Ord Methodsexp :: Down a -> Down a Source log :: Down a -> Down a Source sqrt :: Down a -> Down a Source (**) :: Down a -> Down a -> Down a Source logBase :: Down a -> Down a -> Down a Source sin :: Down a -> Down a Source cos :: Down a -> Down a Source tan :: Down a -> Down a Source asin :: Down a -> Down a Source acos :: Down a -> Down a Source atan :: Down a -> Down a Source sinh :: Down a -> Down a Source cosh :: Down a -> Down a Source tanh :: Down a -> Down a Source asinh :: Down a -> Down a Source acosh :: Down a -> Down a Source atanh :: Down a -> Down a Source log1p :: Down a -> Down a Source expm1 :: Down a -> Down a Source | |||||
| RealFloat a => RealFloat (Down a) Source | Since: base-4.14.0.0 |
||||
Defined in GHC.Internal.Data.Ord MethodsfloatRadix :: Down a -> Integer Source floatDigits :: Down a -> Int Source floatRange :: Down a -> (Int, Int) Source decodeFloat :: Down a -> (Integer, Int) Source encodeFloat :: Integer -> Int -> Down a Source exponent :: Down a -> Int Source significand :: Down a -> Down a Source scaleFloat :: Int -> Down a -> Down a Source isNaN :: Down a -> Bool Source isInfinite :: Down a -> Bool Source isDenormalized :: Down a -> Bool Source isNegativeZero :: Down a -> Bool Source | |||||
| Storable a => Storable (Down a) Source | Since: base-4.14.0.0 |
||||
Defined in GHC.Internal.Data.Ord MethodssizeOf :: Down a -> Int Source alignment :: Down a -> Int Source peekElemOff :: Ptr (Down a) -> Int -> IO (Down a) Source pokeElemOff :: Ptr (Down a) -> Int -> Down a -> IO () Source peekByteOff :: Ptr b -> Int -> IO (Down a) Source pokeByteOff :: Ptr b -> Int -> Down a -> IO () Source | |||||
| Generic (Down a) Source | |||||
Defined in GHC.Internal.Generics Associated Types
| |||||
| Ix a => Ix (Down a) Source | Since: base-4.14.0.0 |
||||
Defined in GHC.Internal.Data.Ord Methodsrange :: (Down a, Down a) -> [Down a] Source index :: (Down a, Down a) -> Down a -> Int Source unsafeIndex :: (Down a, Down a) -> Down a -> Int Source inRange :: (Down a, Down a) -> Down a -> Bool Source rangeSize :: (Down a, Down a) -> Int Source unsafeRangeSize :: (Down a, Down a) -> Int Source | |||||
| Num a => Num (Down a) Source | Since: base-4.11.0.0 |
||||
Defined in GHC.Internal.Data.Ord | |||||
| Read a => Read (Down a) Source |
This instance would be equivalent to the derived instances of the Since: base-4.7.0.0 |
||||
| Fractional a => Fractional (Down a) Source | Since: base-4.14.0.0 |
||||
| Real a => Real (Down a) Source | Since: base-4.14.0.0 |
||||
Defined in GHC.Internal.Data.Ord MethodstoRational :: Down a -> Rational Source | |||||
| RealFrac a => RealFrac (Down a) Source | Since: base-4.14.0.0 |
||||
| Show a => Show (Down a) Source |
This instance would be equivalent to the derived instances of the Since: base-4.7.0.0 |
||||
| Eq a => Eq (Down a) Source | Since: base-4.6.0.0 |
||||
| Ord a => Ord (Down a) Source | Since: base-4.6.0.0 |
||||
Defined in GHC.Internal.Data.Ord | |||||
| type Rep1 Down Source | Since: base-4.12.0.0 |
||||
Defined in GHC.Internal.Generics | |||||
| type Rep (Down a) Source | Since: base-4.12.0.0 |
||||
Defined in GHC.Internal.Generics | |||||
groupWith :: Ord b => (a -> b) -> [a] -> [[a]] Source
The groupWith function uses the user supplied function which projects an element out of every list element in order to first sort the input list and then to form groups by equality on these projected elements
sortWith :: Ord b => (a -> b) -> [a] -> [a] Source
The sortWith function sorts a list of elements using the user supplied function to project something out of each element
In general if the user supplied function is expensive to compute then you should probably be using sortOn, as it only needs to compute it once for each element. sortWith, on the other hand must compute the mapping function for every comparison that it performs.
the :: Eq a => [a] -> a Source
the ensures that all the elements of the list are identical and then returns that unique element
IsString is used in combination with the -XOverloadedStrings language extension to convert the literals to different string types.
For example, if you use the text package, you can say
{-# LANGUAGE OverloadedStrings #-}
myText = "hello world" :: Text
Internally, the extension will convert this to the equivalent of
myText = fromString @Text ("hello world" :: String)
Note: You can use fromString in normal code as well, but the usual performance/memory efficiency problems with String apply.
fromString :: String -> a Source
| IsString a => IsString (Identity a) Source | Since: base-4.9.0.0 |
Defined in GHC.Internal.Data.String MethodsfromString :: String -> Identity a Source | |
| a ~ Char => IsString [a] Source |
Since: base-2.1 |
Defined in GHC.Internal.Data.String MethodsfromString :: String -> [a] Source | |
| IsString a => IsString (Const a b) Source | Since: base-4.9.0.0 |
Defined in GHC.Internal.Data.String MethodsfromString :: String -> Const a b Source | |
unpackCString# :: Addr# -> [Char] Source
unpackAppendCString# :: Addr# -> [Char] -> [Char] Source
unpackFoldrCString# :: Addr# -> (Char -> a -> a) -> a -> a Source
unpackCStringUtf8# :: Addr# -> [Char] Source
unpackNBytes# :: Addr# -> Int# -> [Char] Source
cstringLength# :: Addr# -> Int# Source
Compute the length of a NUL-terminated string. This address must refer to immutable memory. GHC includes a built-in rule for constant folding when the argument is a statically-known literal. That is, a core-to-core pass reduces the expression cstringLength# "hello"# to the constant 5#.
breakpoint :: a -> a Source
breakpointCond :: Bool -> a -> a Source
traceEvent :: String -> IO () Source
Deprecated: Use traceEvent or traceEventIO
currentCallStack :: IO [String] Source
Returns a [String] representing the current call stack. This can be useful for debugging.
The implementation uses the call-stack simulation maintained by the profiler, so it only works if the program was compiled with -prof and contains suitable SCC annotations (e.g. by using -fprof-auto). Otherwise, the list returned is likely to be empty or uninformative.
Since: base-4.5.0.0
The call inline f arranges that f is inlined, regardless of its size. More precisely, the call inline f rewrites to the right-hand side of f's definition. This allows the programmer to control inlining from a particular call site rather than the definition site of the function (c.f. INLINE pragmas).
This inlining occurs regardless of the argument to the call or the size of f's definition; it is unconditional. The main caveat is that f's definition must be visible to the compiler; it is therefore recommended to mark the function with an INLINABLE pragma at its definition so that GHC guarantees to record its unfolding regardless of size.
If no inlining takes place, the inline function expands to the identity function in Phase zero, so its use imposes no overhead.
The call noinline f arranges that f will not be inlined. It is removed during CorePrep so that its use imposes no overhead (besides the fact that it blocks inlining.)
The lazy function restrains strictness analysis a little. The call lazy e means the same as e, but lazy has a magical property so far as strictness analysis is concerned: it is lazy in its first argument, even though its semantics is strict. After strictness analysis has run, calls to lazy are inlined to be the identity function.
This behaviour is occasionally useful when controlling evaluation order. Notably, lazy is used in the library definition of par:
par :: a -> b -> b par x y = case (par# x) of _ -> lazy y
If lazy were not lazy, par would look strict in y which would defeat the whole purpose of par.
oneShot :: (a -> b) -> a -> b Source
The oneShot function can be used to give a hint to the compiler that its argument will be called at most once, which may (or may not) enable certain optimizations. It can be useful to improve the performance of code in continuation passing style.
If oneShot is used wrongly, then it may be that computations whose result that would otherwise be shared are re-evaluated every time they are used. Otherwise, the use of oneShot is safe.
oneShot is representation-polymorphic: the type variables may refer to lifted or unlifted types.
considerAccessible :: Bool Source
Semantically, considerAccessible = True. But it has special meaning to the pattern-match checker, which will never flag the clause in which considerAccessible occurs as a guard as redundant or inaccessible. Example:
case (x, x) of (True, True) -> 1 (False, False) -> 2 (True, False) -> 3 -- Warning: redundant
The pattern-match checker will warn here that the third clause is redundant. It will stop doing so if the clause is adorned with considerAccessible:
case (x, x) of (True, True) -> 1 (False, False) -> 2 (True, False) | considerAccessible -> 3 -- No warning
Put considerAccessible as the last statement of the guard to avoid get confusing results from the pattern-match checker, which takes "consider accessible" by word.
seq# :: a -> State# s -> (# State# s, a #) Source
The primitive used to implement evaluate. Prefer to use evaluate whenever possible!
data SpecConstrAnnotation Source
Deprecated, use SPEC directly instead.
Annotating a type with NoSpecConstr will make SpecConstr not specialise for arguments of that type, e. g., {-# ANN type SPEC ForceSpecConstr #-}.
| NoSpecConstr | |
| ForceSpecConstr |
| Data SpecConstrAnnotation Source | Since: base-4.3.0.0 |
Defined in GHC.Internal.Exts Methodsgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SpecConstrAnnotation -> c SpecConstrAnnotation Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SpecConstrAnnotation Source toConstr :: SpecConstrAnnotation -> Constr Source dataTypeOf :: SpecConstrAnnotation -> DataType Source dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SpecConstrAnnotation) Source dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SpecConstrAnnotation) Source gmapT :: (forall b. Data b => b -> b) -> SpecConstrAnnotation -> SpecConstrAnnotation Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SpecConstrAnnotation -> r Source gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SpecConstrAnnotation -> r Source gmapQ :: (forall d. Data d => d -> u) -> SpecConstrAnnotation -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> SpecConstrAnnotation -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> SpecConstrAnnotation -> m SpecConstrAnnotation Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SpecConstrAnnotation -> m SpecConstrAnnotation Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SpecConstrAnnotation -> m SpecConstrAnnotation Source | |
| Eq SpecConstrAnnotation Source | Since: base-4.3.0.0 |
Defined in GHC.Internal.Exts Methods(==) :: SpecConstrAnnotation -> SpecConstrAnnotation -> Bool Source (/=) :: SpecConstrAnnotation -> SpecConstrAnnotation -> Bool Source | |
SPEC is used by GHC in the SpecConstr pass in order to inform the compiler when to be particularly aggressive. In particular, it tells GHC to specialize regardless of size or the number of specializations. However, not all loops fall into this category.
Libraries can specify this by using SPEC data type to inform which loops should be aggressively specialized. For example, instead of
loop x where loop arg = ...
write
loop SPEC x where loop !_ arg = ...
There is no semantic difference between SPEC and SPEC2, we just need a type with two constructors lest it is optimised away before SpecConstr.
This type is reexported from GHC.Exts since GHC 9.0 and base-4.15. For compatibility with earlier releases import it from GHC.Types in ghc-prim package.
Since: ghc-prim-0.3.1.0
These are available from the Trustworthy module Data.Coerce as well.
Since: base-4.7.0.0
coerce :: Coercible a b => a -> b Source
The function coerce allows you to safely convert between values of types that have the same representation with no run-time overhead. In the simplest case you can use it instead of a newtype constructor, to go from the newtype's concrete type to the abstract type. But it also works in more complicated settings, e.g. converting a list of newtypes to a list of concrete types.
When used in conversions involving a newtype wrapper, make sure the newtype constructor is in scope.
This function is representation-polymorphic, but the RuntimeRep type argument is marked as Inferred, meaning that it is not available for visible type application. This means the typechecker will accept coerce @Int @Age 42.
>>> newtype TTL = TTL Int deriving (Eq, Ord, Show) >>> newtype Age = Age Int deriving (Eq, Ord, Show) >>> coerce (Age 42) :: TTL TTL 42 >>> coerce (+ (1 :: Int)) (Age 42) :: TTL TTL 43 >>> coerce (map (+ (1 :: Int))) [Age 42, Age 24] :: [TTL] [TTL 43,TTL 25]
unsafeCoerce# :: a -> b Source
Highly, terribly dangerous coercion from one representation type to another. Misuse of this function can invite the garbage collector to trounce upon your data and then laugh in your face. You don't want this function. Really.
This becomes more obvious when looking at its actual type: forall (r1 :: RuntimeRep) (r2 :: RuntimeRep) (a :: TYPE r1) (b :: TYPE r2). a -> b Which often get's rendered as a -> b in haddock for technical reasons.
class WithDict cls meth where Source
The constraint WithDict cls meth can be solved when evidence for the constraint cls can be provided in the form of a dictionary of type meth. This requires cls to be a class constraint whose single method has type meth.
For more (important) details on how this works, see Note [withDict] in GHC.Tc.Instance.Class in GHC.
Since: ghc-prim-0.9.0
withDict :: forall {rr :: RuntimeRep} (r :: TYPE rr). meth -> (cls => r) -> r Source
class DataToTag (a :: TYPE ('BoxedRep lev)) where Source
dataToTag# evaluates its argument and returns the index (starting at zero) of the constructor used to produce that argument. Any algebraic data type with all of its constructors in scope may be used with dataToTag#.
>>> dataToTag# (Left ()) 0# >>> dataToTag# (Right undefined) 1#
dataToTag# :: a -> Int# Source
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.12.1/docs/libraries/base-4.21.0.0-8e62/GHC-Exts.html